[英]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.