有没有办法从另一个页面访问页面控件。我的 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/