簡體   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