gpt4 book ai didi

c# - 如何使用Mvvm将页面推送到MasterDetailPage

转载 作者:行者123 更新时间:2023-12-03 10:56:39 24 4
gpt4 key购买 nike

我想使用Mvvm(Basic Mvvm)进行MasterDetailPage开发。但是面临将新的ContentPage推送到Detail的问题

如果我使用幕后花絮没什么问题,我可以像下面这样

private void Button_Clicked(object sender, System.EventArgs e)
{
Detail= new NavigationPage(new Menu1Page());
}

但是,当涉及ViewModel中的 Mvvm时,我那里没有 详细信息页面访问权限。所以我可以,但是它隐藏了 MasterDetailPage
async Task Menu1Page()
{
await Xamarin.Forms.Application.Current.MainPage.Navigation.PushModalAsync(new Menu1Page());
}

那么,如何将页面从Mvvm推送到 Detail

最佳答案

您也可以在ViewModel中访问Detail页面。只是您需要将App.Current.MainPage转换为MasterDetailPage。看下面的代码。

async Task NavigateNext()
{
await (App.Current.MainPage as MasterDetailPage).Detail.Navigation.PushAsync(new Menu1Page());
//(App.Current.MainPage as MasterDetailPage).IsPresented = false;
}

上面的代码片段将页面作为 MasterDetailPage的子代推送,以便您可以通过按 Navigationbar上的向后箭头来返回。

您可以将页面直接设置为 Detail页面,在这种情况下它将页面显示在 MasterDetailPage的首页上,后退箭头将无法返回,如下所示
(App.Current.MainPage as MasterDetailPage).Detail = new NavigationPage(new Menu1Page());
//(App.Current.MainPage as MasterDetailPage).IsPresented = false;

关于c# - 如何使用Mvvm将页面推送到MasterDetailPage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53203379/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com