C# UWP - 如何从另一个页面访问页面控件?

标签 c# xaml uwp

有没有办法从另一个页面访问页面控件。我的 MainPage 中有一些控件,我想从另一个包含 ListView 的页面访问 Mainpage 控件 TitleTextBlock。我想在选择 ListView 项时更改 Mainpage TitleTextBlock.Text

我也尝试过,但 TitleTextBlock.Text 值没有改变。那有什么办法吗??

MainPage.xaml.cs

public void ChangeTitle(string title)
{
   TitleTextBlock.Text = title;
   BackButton.Visibility = Visibility.Visible;
}

ContentPage.xaml.cs

private void ListView_ItemClick(object sender, ItemClickEventArgs e)
{
   var link = (Link)e.ClickedItem;
   this.Frame.Navigate(typeof(WebViewPage), link);

   MainPage p = new MainPage();
   p.ChangeTitle(link.Title);
}

已更新 我几乎没有改变就解决了这个问题 MainPage.xaml.cs

 public static TextBlock HeaderTitleTextBlock { get; set; }
 public static Button HeaderBackButton { get; set; }

 public MainPage()
   {
      this.InitializeComponent();
      HeaderTitleTextBlock = TitleTextBlock;
      HeaderBackButton = BackButton;

   }

ContentPage.xaml.cs

MainPage.HeaderTitleTextBlock.Text = link.Title;
MainPage.HeaderBackButton.Visibility = Visibility.Visible;

最佳答案

您还可以使用 x:FieldModifier 属性使控件显示为 public(这是 WPF 的默认行为):

<TextBlock x:FieldModifier="public" x:Name="MyTextBlock" />

这将使控件公开并且可以从其他类访问它。

我为此写了一篇简短的博文:http://blog.mzikmund.com/2017/06/modifying-xaml-field-visibility/

关于C# UWP - 如何从另一个页面访问页面控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48150301/

相关文章:

c# - 无法绑定(bind)依赖属性

XAML:以下符号之间的功能差异是什么?

c# - 移植 .NET 库以便在 UWP 应用程序中重用

c# - 将值舍入到最接近的 2 的幂

c# - .Net优化

c# - 多个 html 类与 c#

c# - 在 VS2015 上对 UWP 应用程序使用 xUnit 测试

c# - 是否可以在 C# 中合并字符串和 DBNull?

c# - .NET MAUI 项目始终为空

email-attachments - 通过 UWP EmailManager 发送电子邮件附件不起作用