有没有办法从另一个页面访问页面控件.我在MainPage中有一些控件,我想从另一个包含列表视图的页面访问Mainpage Controls TitleTextBlock.我想在选择listview项时更改主页TitleTextBlock.Text.
我也尝试但TitleTextBlock.Text值不会改变.那有什么办法吗?
MainPage.xaml.cs中
public void ChangeTitle(string title)
{
TitleTextBlock.Text = title;
BackButton.Visibility = Visibility.Visible;
}
Run Code Online (Sandbox Code Playgroud)
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);
}
Run Code Online (Sandbox Code Playgroud)
更新 我解决了这个问题,几乎没有更改 MainPage.xaml.cs
public static TextBlock HeaderTitleTextBlock { get; set; }
public static Button HeaderBackButton { get; set; }
public MainPage()
{
this.InitializeComponent();
HeaderTitleTextBlock = TitleTextBlock;
HeaderBackButton = BackButton;
}
Run Code Online (Sandbox Code Playgroud)
ContentPage.xaml.cs
MainPage.HeaderTitleTextBlock.Text = link.Title;
MainPage.HeaderBackButton.Visibility = Visibility.Visible;
Run Code Online (Sandbox Code Playgroud)
您还可以public使用x:FieldModifier属性将控件显示为(这是WPF的默认行为):
<TextBlock x:FieldModifier="public" x:Name="MyTextBlock" />
Run Code Online (Sandbox Code Playgroud)
这将使控件公开,并且可以从其他类访问它.
我写了一篇关于此的短篇博文:http://blog.mzikmund.com/2017/06/modifying-xaml-field-visibility/
| 归档时间: |
|
| 查看次数: |
2089 次 |
| 最近记录: |