C#の WPF Prism でダイアログ画面(別ウィンドウ)を表示する方法について説明します。
対象ファイル(例)
コーディングが必要なファイルは下記の A~D です。
MainWindowView.xaml(画面遷移元) ・・・A
①ボタンにCommandを追加
画面遷移元のViewのボタンに対して、CommandにBindingでデリゲートコマンド名称を記載します。
MainWindowViewModel.cs(画面遷移元) ・・・B
②ViewModelにIDialogServiceの変数を追加
画面遷移元のViewModelに、IDialogServiceのプライベート変数を追加し、コンストラクタでセットします。
③ボタン押下時の実行メソッドを追加
ボタン押下イベントを受け取るデリゲートコマンドのプロパティを追加し、ボタン押下時のExcuteメソッドを実装します。
上記②~③のコード例は下記となります。
SampleTableEditViewModel.cs(画面遷移先) ・・・C
④IDialogAwareインターフェースを実装
画面遷移先のViewModelに、IDialogAwareインターフェース を実装します。
⑤CanCloseDialogメソッドを変更
IDialogAwareを実装した事で追加される CanCloseDialog() メソッドに、 retun true を記載します。 trueを返す事で、ダイアログを閉じる事が可能となります。
▼上記④~⑤のサンプルコード
App.xaml.cs ・・・D
⑥RegisterTypes内でViewを登録
containerRegistry.RegisterDialogに設定したViewがダイアログ表示可能となります。