XamarinでMvvm Light(その2) – DialogServiceとNavigationServiceを入れた

前回の血圧管理手帳アプリに削除機能を追加した。

確認ダイアログを出したかったので、DialogServiceでダイアログを出すようにした。

WindowsのWPFアプリでは、MessengerとTriggerActionで出してたけど、DialogServiceの方がポピュラーっぽい?

データの一覧画面も追加して、スクロールしたら動的にデータを増やすようにした。

1.App.xaml.cs

ViewModelLocatorでIocに登録していた処理をやめて、App.xaml.csでまとめてやるようにした。

MainPageにはNavigationPageをnewして設定。

DBManagerもIF化してIocに登録。

各ViewModel登録時に、コンストラクタに指定したIFが自動的に読まれるようで便利だ。

参考サイトよりDialogServiceとNavigationServiceを入れて、各Initializeを呼ぶようにした。

2.ViewModelLocator

staticでViewModelを返すだけにした。

XAMLでBindingContextの書き方

3.DBManager

削除メソッドを追加した。

4.ダイアログを出す

ダイアログが非同期なので、コマンドもasync, awaitを付けた。

ダイアログでた。(∩´∀`)∩

5.画面遷移

遷移先のページキーを指定する。

遷移先にはヘッダに戻るリンクが表示される。

ListViewがショボいな(´・ω・`)。。。GridViewみたくしたいな。

6.ListViewの動的データ追加

①XAML

ListViewの最下行が表示されたら、ItemAppearingイベントが走るのので、EventToCommandする

②VM

ItemAppearingCommandで追加検索して、ListViewのItemsSourceのObservableCollectionに追加する

参考サイト

https://marcominerva.wordpress.com/2014/10/14/dialogservice-in-mvvm-light-v5/

https://marcominerva.wordpress.com/2014/10/10/navigationservice-in-mvvm-light-v5/

http://ytabuchi.hatenablog.com/entry/2015/08/27/095300

%d人のブロガーが「いいね」をつけました。