Xamarin.Forms + Prism と言った感じで、 MVVM パターンでやってる際に、
ViewModel から、ダイアログを呼び出したい時があります。
その時のやり方みたいな。
単純に View から呼び出したい場合はこんな感じ。
await this.DisplayAlert("Hello", "Hello, world!", "OK");
こう表示されます。
じゃあ 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"); }
痒いところに手が届いている感じがして、すごく便利ですね。