【发布时间】:2017-05-04 03:17:14
【问题描述】:
我正在尝试在 Xamarin Forms 中使用 Prism 创建一个应用程序。
Xamarin 表单版本:2.3.3.175
棱镜版本:6.2.0
汉堡菜单在 Android 中有效,但是当我在 UWP 上运行它时,它不会显示图标,而且当我浏览菜单时,菜单完全消失,我也不会让该方法返回到其他页面。换句话说,我需要关闭并重新启动应用程序。
这是我目前尝试过的。
-
创建 prism 项目后,我添加了一个 MasterDetailPage:
<MasterDetailPage.Master> <ContentPage Title="Default"> <StackLayout> <Button Text="Billing" Command="{Binding Path=NavigationCommand}" CommandParameter="MyNavigationPage/BillingPage"/> <Button Text="Your Order" Command="{Binding Path=NavigationCommand}" CommandParameter="MyNavigationPage/PlaceOrderPage"/> <Button Text="Settings" Command="{Binding Path=NavigationCommand}" CommandParameter="MyNavigationPage/SettingsPage"/> <Button Text="Settings"/> </StackLayout> </ContentPage> </MasterDetailPage.Master>
MasterDetailPage 视图模型
public class MDPageViewModel : BindableBase
{
private INavigationService _navigationService;
public DelegateCommand<string> NavigationCommand => new DelegateCommand<string>(Navigation);
public MDPageViewModel(INavigationService navigationService)
{
_navigationService = navigationService;
}
private void Navigation(string page)
{
_navigationService.NavigateAsync(page);
}
}
-
之后我创建了一个导航页面以及相应的页面和视图模型。这是 App.Xaml.cs 文件:
公共部分类 App : PrismApplication { 公共应用程序(IPlatformInitializer 初始化程序 = null):基础(初始化程序){}
protected override void OnInitialized() { InitializeComponent(); NavigationService.NavigateAsync("MDPage/MyNavigationPage/ItemsPage"); } protected override void RegisterTypes() { Container.RegisterTypeForNavigation<MDPage>(); Container.RegisterTypeForNavigation<BillingPage>(); Container.RegisterTypeForNavigation<PlaceOrderPage>(); Container.RegisterTypeForNavigation<SettingsPage>(); Container.RegisterTypeForNavigation<MyNavigationPage>(); } }
但是当我点击 menu 中的链接时,menu 会消失,看起来像这样。
我做错了什么,我该如何解决?
我在github上创建了一个项目,方便大家查看错误。
https://github.com/codemasterblackperl/Hamburger_Menu_Prism_Forms_Repo
【问题讨论】:
标签: c# xamarin xamarin.forms prism prism-6