如何从UserControl更改MainPage TextBlock文本?

时间:2016-08-15 11:25:38

标签: c# wpf windows-phone-8.1

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

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

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

2 个答案:

答案 0 :(得分:0)

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

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

另一种选择是使用UserControl的Parnt属性并尝试将所有兄弟姐妹的孩子放在那里,然后选择所需的孩子。

答案 1 :(得分:0)

感谢您的回答,但我决定使用委托和事件,并做了类似的事情:

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

在MainPage中:

public MainPage()
{
    myUserControl.MyPropertyChanged += MyUserControl_MyPropertyChanged;
}

private void MyUserControl_MyPropertyChanged(string a)
{
    myTextBlock.Text = a;
}