在我的主页面中,我有一些TextBlock和UserControl:
<Page
x:Class="MyProject.MainPage">
<Grid>
<TextBlock x:Name="myTextBlock" Text="" />
<MyUserControl x:Name = "userControl" />
</Grid>
</Page>
如何从userControl类访问myTextBlock并更改其文本?
答案 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;
}