Xamarin.Forms PrismでMVVM入門 PageDialogServiceでダイアログを表示

こんにちは。レモンティーです。

前回はページ遷移のお話でした。
www.sawalemontea.com

今回は、ダイアログの表示です。

using Prism.Services;

が必要です。


使い方はページ遷移の時とにています。
(TestViewModel() はコンストラクタです。)

private IPageDialogService _pageDialogService;

public TestViewModel(IPageDialogService pageDialogService)
{
     _pageDialogService =  pageDialogService;
}

としておいて

await  _pageDialogService.DisplayAlertAsync("Title","Message","OK");

のように使います。

var result = await  _pageDialogService.DisplayAlertAsync("Title","Message","OK","Cancel");

とすれば二択バージョンも使えますし、

var result = await  _pageDialogService.DisplayActionAsync("Title","Cancel",null,"A","B","C","D", ... );

とすれば複数の中から選ばせることもできます。
このとき、resultには選ばれたボタンの文字列が帰ってきます。

選択肢にstringではなくIActionSheetButtonのボタンを入れることで
いちいちresultの文字列で条件分岐しなくても
ボタン選択時のCommandを含めて指定することもできます。

その場合は、

IActionSheetButton selectAAction = ActionSheetButton.CreateButton("Select A", new DelegateCommand(() => { Debug.WriteLine("Select A"); }));

このように作ったボタンを

_pageDialogService.DisplayActionSheetAsync("Title", selectAAction,selectBAction,selectCAction,selectDAction );

このように適用します。



今回はこれでおしまいです。
www.sawalemontea.com