我使用梦幻般的Template10作为我的Universal App和MVVM ..
我想要做的是隐藏并显示来自不同视图的Shell.xaml文件中声明的汉堡包按钮。理想的解决方案就是......如果我什么都不说,那就显示汉堡包按钮,否则,隐藏汉堡包按钮..
假设我有MainPage,当我单击列表中的项目时,我导航到DetailsPage,在构造函数中我发送消息或设置一个属性,以便在ShellView中隐藏汉堡按钮。
这样做的最佳做法是什么?
信使可能是一种可能性,但我不确定这是最好的解决方案..
答案 0 :(得分:3)
如果你使用的是Template10,那么你应该在Shell.xaml.cs中使用:
public static Shell Instance { get; set; }
public static HamburgerMenu HamburgerMenu { get { return Instance.MyHamburgerMenu; } }
public Shell()
{
Instance = this;
this.InitializeComponent();
}
这将允许您从应用程序的任何位置访问shell实例,并使用代码:
var h = Shell.HamburgerMenu;
h.HamburgerButtonVisibility = MyVisibilityParam;
您可以访问HamburgerButton的可见性,MyVisibilityparam可以是Visibility.Collapsed
或Visibility.Visible
答案 1 :(得分:0)
我认为Messenger非常适合这里,从其他视图中激活它以更新按钮。