繁体   English   中英

如何从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类访问myTextBlock并更改其文本?

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM