从不同视图修改HamburgerButtonVisibility属性

时间:2016-03-08 19:59:30

标签: c# mvvm winrt-xaml win-universal-app template10

我使用梦幻般的Template10作为我的Universal App和MVVM ..
我想要做的是隐藏并显示来自不同视图的Shell.xaml文件中声明的汉堡包按钮。理想的解决方案就是......如果我什么都不说,那就显示汉堡包按钮,否则,隐藏汉堡包按钮..
假设我有MainPage,当我单击列表中的项目时,我导航到DetailsPage,在构造函数中我发送消息或设置一个属性,以便在ShellView中隐藏汉堡按钮。 这样做的最佳做法是什么? 信使可能是一种可能性,但我不确定这是最好的解决方案..

2 个答案:

答案 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.CollapsedVisibility.Visible

答案 1 :(得分:0)

我认为Messenger非常适合这里,从其他视图中激活它以更新按钮。