如何从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更改MainPage TextBlock文本

既然你没有试图绑定它们,应该有一种方法让你的userControl访问那个TextBlock。最简单的方法是在UserControl中使用公共TextBlock属性,并在xaml或TextBlock后面的代码中设置该属性。

之后,你可以很容易地在你的UserControl属性中获得TextBlock Text。

另一个选择是使用UserControl的parent属性,并尝试获得所有的兄弟姐妹的孩子,然后选择所需的

谢谢你的回答,但我决定使用委托和事件,并做了这样的事情:

在MyUserControl

private 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;
}