如何从 UserControl 更改 MainPage TextBlock 文本?

How to change MainPage TextBlock text from UserControl?

在我的主页中,我有一些 TextBlock 和 UserControl:

<Page
  x:Class="MyProject.MainPage">
  <Grid>
    <TextBlock x:Name="myTextBlock" Text="" />
    <MyUserControl x:Name = "userControl" />
  </Grid>
</Page>

如何从 userControl class 访问 myTextBlock 并更改其文本?

由于您没有尝试绑定它们,因此您的 userControl 应该有一种方法可以访问该 TextBlock。 最简单的方法是在 UserControl 中使用 public TextBlock 属性 并在 xaml 或 TextBlock 后面的代码中设置此 属性。

之后,您可以轻松地在 UserControl 中的 属性 中获取 TextBlock 文本。

另一种选择是使用 UserControl 的 Parnt 属性 并尝试将所有同级子项都放在那里,然后选择所需的。

感谢您的回答,但我决定使用委托和事件,并做了如下操作:

在我的用户控件中

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