Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin.forms PRISM Xamarin.形成了对服务的理解。[续]_Xamarin.forms_Prism - Fatal编程技术网

Xamarin.forms PRISM Xamarin.形成了对服务的理解。[续]

Xamarin.forms PRISM Xamarin.形成了对服务的理解。[续],xamarin.forms,prism,Xamarin.forms,Prism,我想知道下面链接中讨论的选项是否已经可以使用Prism进行了。 使用MasterDetail的项目 在不带Prism的XF中,使用PushAsync打开一个页面,而不替换MainPage,带有NavigationBar和back按钮 App.css 从MyMasterPageViewModel.cs调用SecondPage 第二页以模式打开,带有导航栏和后退按钮。 我不能用棱镜重现同样的行为 感谢开始您的示例,说明您希望做的不是如何使用MasterDetailPage。为了在这里有所帮

我想知道下面链接中讨论的选项是否已经可以使用Prism进行了。

使用MasterDetail的项目

在不带Prism的XF中,使用PushAsync打开一个页面,而不替换MainPage,带有NavigationBar和back按钮

  • App.css
  • 从MyMasterPageViewModel.cs调用SecondPage
第二页以模式打开,带有导航栏和后退按钮。 我不能用棱镜重现同样的行为


感谢开始您的示例,说明您希望做的不是如何使用MasterDetailPage。为了在这里有所帮助,我将用一个简单的例子来说明。MasterDetailPage永远不应该包装在NavigationPage中,而是MasterDetailPage的细节应该是一个NavigationPage,其中一些页面设置为其内容

var page = new MasterDetailPage
{
    Detail = new NavigationPage(new ContentPage())
};
在Prism中,我们假设您有一个名为MainPage的MasterDetailPage,并且您已经注册了NavigationPage、一个名为ViewA的ContentPage和另一个名为ViewB的ContentPage

创建MasterDetailPage的正确方法是:

_navigationService.NavigateAsync("MainPage/NavigationPage/ViewA");
现在,如果要从ViewA中推送ViewB,请执行以下操作:

_navigationService.NavigateAsync("ViewB");
您将看到它被推到NavigationPage的内部,导航返回到ViewA。现在让我们假设你想强迫它成为一个模态,你只需要做:

_navigationService.NavigateAsync("ViewB?useModalNavigation=true");

嗨,丹,谢谢你的回答。。。我尝试了所有我找到的选择,但没有任何效果。。。我正在尝试将此项目转换为PRISM…()。请注意,当您在菜单中选择“我的钱包”选项时,“我的钱包”屏幕将打开,但没有打开菜单的选项,但带有导航栏和backbutton。在PRISM,我没有发现这种可能性。在过去的几年里,世界各地有成千上万的开发者成功地使用了Prism。问题不在于棱镜。我很乐意进一步帮助您,但作为一名顾问,您似乎需要我的指导,而不仅仅是关于StackOverflow的简单答案。好的,这个项目只是一个例子。它在NavigationPage(MainPage=new NavigationPage(new MainView());)中实现一个MasterDetail,因此PushAsync打开的每个页面都将包含backbutton。在PRISM中,这是不可能的,或者在没有PRISM的XF中,它无法工作。谢谢
_navigationService.NavigateAsync("ViewB");
_navigationService.NavigateAsync("ViewB?useModalNavigation=true");