如何从UserControl更改MainPage TextBlock文本
本文关键字:MainPage TextBlock 文本 更改 UserControl | 更新日期: 2023-09-27 18:02:22
在我的主页我有一些TextBlock和UserControl:
<Page
x:Class="MyProject.MainPage">
<Grid>
<TextBlock x:Name="myTextBlock" Text="" />
<MyUserControl x:Name = "userControl" />
</Grid>
</Page>
我怎么能从userControl类访问myTextBlock并改变它的文本?
既然你没有试图绑定它们,应该有一种方法让你的userControl访问那个TextBlock。最简单的方法是在UserControl中使用公共TextBlock属性,并在xaml或TextBlock后面的代码中设置该属性。
之后,你可以很容易地在你的UserControl属性中获得TextBlock Text。
另一个选择是使用UserControl的parent属性,并尝试获得所有的兄弟姐妹的孩子,然后选择所需的
谢谢你的回答,但我决定使用委托和事件,并做了这样的事情:
在MyUserControlprivate string myString;
public delegate void MyEventHandler(string a);
public event MyEventHandler MyPropertyChanged;
public MyUserControl()
{
this.MyPropertyChanged+= new MyEventHandler(HandlePropertyChanging);
}
private void HandleCreditsChanging(string a)
{
a = myString;
}
在主页:public MainPage()
{
myUserControl.MyPropertyChanged += MyUserControl_MyPropertyChanged;
}
private void MyUserControl_MyPropertyChanged(string a)
{
myTextBlock.Text = a;
}