なつねこメモ

主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ 書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。

Xamarin.Forms + Prism で ViewModel からダイアログを出す

Xamarin.Forms + Prism と言った感じで、 MVVM パターンでやってる際に、
ViewModel から、ダイアログを呼び出したい時があります。

その時のやり方みたいな。


単純に View から呼び出したい場合はこんな感じ。

await this.DisplayAlert("Hello", "Hello, world!", "OK");

f:id:MikazukiFuyuno:20151207211919p:plain
こう表示されます。

じゃあ ViewModel からは?というと、 Prism の方でいい感じのものを提供してくれています。

Prism/4-PageDialogService.md at master · PrismLibrary/Prism · GitHub

これを使えば呼び出すことが可能です。
こんな感じ。

private readonly _dialogService;

public MainPageViewModel(IPageDialogService dialogService)
{
    this._dialogService = dialogService;
}

// ...
// コマンド呼び出しなど
private async void Hoge()
{
    await this._dialogService.DisplayAlert("Hello", "Hello, world!", "OK");
}

痒いところに手が届いている感じがして、すごく便利ですね。