我有一个页面,可以通过两个单独视图中的按钮访问。我的问题是,当我从第一个视图导航到页面时,我想设置该页面中按钮的可见性以进行折叠。当我从另一个视图导航到该页面时,我需要将该特定按钮设置为Visible。
所以我很想知道是否有办法在特定视图外部的视图中设置按钮的可见性属性?
答案 0 :(得分:0)
Navigate
方法允许您传递要由导航目标解释的参数。详情请参阅Pass information between pages。
您可以通过Visibility
方法传递Navigate
属性,并在页面中使用OnNavigateTo
方法接收该属性,然后您可以将此属性设置为此页面内的按钮。例如:
//When navigate
private void btnnavigate_Click(object sender, RoutedEventArgs e)
{
this.Frame.Navigate(typeof(testpage), "Collapsed");
}
在页面上:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (e.Parameter is string && !string.IsNullOrWhiteSpace((string)e.Parameter))
{
var visibleproperty = e.Parameter as string;
if(visibleproperty=="Collapsed")
{
btnnavigate.Visibility = Visibility.Collapsed;
}
else
{
btn.Visibility = Visibility.Visible;
}
}
else
{
btn.Visibility = Visibility.Visible;
}
base.OnNavigatedTo(e);
}