来自子 ViewModel 的 Xamarin Prism MasterDetailPage.IsPresented

Xamarin Prism MasterDetailPage.IsPresented from child ViewModel

有人知道如何从子视图模型控制 IsPresented 属性 吗?

我正在实现一个自定义导航栏,我想在其中模拟汉堡包图标的行为,以便我加载的子页面具有

NavigationPage.SetHasNavigationBar(this, false);

隐藏导航参数

在 Xaml 文件中,我有一个按钮,我想将其绑定到子视图模型的 PropertyCommand 并显示母版页,基本上以某种方式调用 Master 的 IsPresented。

谢谢。

有几种方法可以解决这个问题。

我的做法是使用 MVVM 并使用接口在需要时访问 'presenting the Master page' 功能。

 public interface ICustomMasterDetail
 {
      void SetMasterPresented(bool isPresented);
 }

现在在 MasterDetailPage 上扩展并实现上述接口

public class CustomMasterDetail : MasterDetailPage, IRootMasterDetail
{
     public CustomMasterDetail() : base()
     {
        //constructor code
     }

     public void SetMasterPresented(bool isPresented)
     {
         IsPresented = isPresented;
     }
}

使用 IoC 容器来注册和解析接口将使您可以随时随地使用它的功能。

另一种解决方案是只使用静态变量来存储 MasterDetailPage 的实例并直接访问它以更改 IsPresented 属性