Xamarinでポップアップを実装するために
下記ソースで勉強中です。
https://github.com/dansiegel/Prism.Plugin.Popups/tree/master/samples
■質問1
起動時はMenuPageが起動しますが
一番下の「VIEWA」ボタンを押すと、ViewAにページ遷移します。
MenuPage.xaml
xaml
1<Button Text="ViewA" Command="{prism:NavigateTo ViewA}" />
prism7.1より、Commandに prism:NavigateTo と記述することでページ遷移できるのは確認しました。
(当初はviewmodelにDelegateCommandを宣言していました。)
ただ、ViewAにはViewModelもなく
App.xaml.cs の RegisterTypes で Register していませんが、ページ遷移します。
App.xaml.cs
C#
1 protected override void RegisterTypes(IContainerRegistry containerRegistry) 2 { 3 containerRegistry.RegisterPopupNavigationService(); 4 containerRegistry.RegisterPopupDialogService(); 5 6 containerRegistry.RegisterForNavigation<TabbedPage>(); 7 containerRegistry.RegisterForNavigation<NavigationPage>(); 8 9 containerRegistry.RegisterDialog<SampleDialog, SampleDialogViewModel>(); 10 containerRegistry.RegisterDialog<NotAnimatedDialog, SampleDialogViewModel>(); 11 }
試しに自分のサンプルソースで実装してみましたがページ遷移せず
ViewModel の作成と、上記メソッドで Register すれば遷移します。
サンプルソースでは未記述でもページ遷移する理由が分からず、理解につながりませんでした。
ページ遷移する理由と
加えて、ページ遷移の方法が下から上へのアニメーションになる理由も分からないので
ご存じの方は教えて頂きたいです。
■質問2
上記の内容と似ています。
今回の目的ですが、ポップアップを実装することでした。
ViewA.xaml より、「DISPLAY POPUP」ボタンを押すことでポップアップが立ち上がります。
ViewA.xaml
xaml
1 <Button Text="Display Popup" Command="{prism:NavigateTo 'PopupView'}" />
今回も質問1同様に
App.xaml.cs の RegisterTypes で PopupView を Register していません。
ただ、以下の処理が関係しているとは思っています。
App.xaml.cs
C#
1 containerRegistry.RegisterPopupNavigationService(); 2 containerRegistry.RegisterPopupDialogService();
こちらも自分のソースに組み込んだところ動かず
void RegisterTypes() で Register することで動きました。
PopupView もサンプルソースでは「prism:NavigateTo 'PopupView'」と記述するだけで動く理由を教えて頂きたいです。
まとまらない文章で申し訳ありません。
数日悩んでも解決しなかったので、答えが分かる方にアドバイス頂きたいです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/28 05:54