Xamarin Forms で Prism を使用してアプリを作成しようとしています。
Xamarin フォームのバージョン: 2.3.3.175
プリズムバージョン: 6.2.0
ハンバーガー メニューは Android で動作しますが、UWP を実行するとアイコンが表示されず、メニューをナビゲートするとメニューが完全に消え、メソッドが他のページに戻ることもありません。つまり、アプリを閉じて再起動する必要があります。
これが私がこれまでに試したことです。
プリズム プロジェクトを作成した後、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 ViewModel
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 ファイルは次のとおりです。
public partial class App : PrismApplication { public App(IPlatformInitializer initializer = null) : base(initializer) { }
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>(); } }
しかし、メニューのリンクをクリックすると、メニューが消えて、このようになります。
私が間違っていることと、どうすれば解決できますか?
エラーを簡単に表示できるように、github にプロジェクトを作成しました。
https://github.com/codemasterblackperl/Hamburger_Menu_Prism_Forms_Repo