Arv*_*iya 0 c# mvvm xamarin xamarin.forms
我想使用Mvvm(Basic Mvvm)进行MasterDetailPage开发。但面临着推新的ContentPage问题Detail
如果我使用后面的代码没有问题,我可以这样做
private void Button_Clicked(object sender, System.EventArgs e)
{
Detail= new NavigationPage(new Menu1Page());
}
Run Code Online (Sandbox Code Playgroud)
但是当涉及到MvvmViewModel时,我没有详细信息页面访问权限。所以我可以这样做,但它被隐藏了MasterDetailPage
async Task Menu1Page()
{
await Xamarin.Forms.Application.Current.MainPage.Navigation.PushModalAsync(new Menu1Page());
}
Run Code Online (Sandbox Code Playgroud)
Detail那么,如何从Mvvm推送页面呢?
您也可以在 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;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码片段将页面作为 的子项推送MasterDetailPage,以便您可以通过按 上的后退箭头返回Navigationbar。
您可以直接将页面设置为Detail页面,它会在第一页显示页面,MasterDetailPage在这种情况下后退箭头将无法返回,如下所示
(App.Current.MainPage as MasterDetailPage).Detail = new NavigationPage(new Menu1Page());
//(App.Current.MainPage as MasterDetailPage).IsPresented = false;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1089 次 |
| 最近记录: |