WeakEventViewModelBase クラスの実装の見直しを反映しました(2020年5月27日)。
前回の投稿で「弱いイベントパターンを用いたリスナー登録機能を持つビューモデルベースを使った簡単なプログラム」を作ったので、今回は2つのウィンドウを持つプラグラムを作って、ビューモデルが開放されることを確認してみます。構成としては、データ表示を行う MainWindow、データ表示とデータの編集・追加を行う ModalWindow01、データの変更通知機能を持つサービス層の ItemService になります。前回と同じく、データの追加処理ではデータの追加処理ではサービス層への依頼だけを行なっていて、表示の更新はサービス層からの変更通知を受けて行うようにしています(ちょっと無理矢理感もありますが。
また、ModalWindow01 の表示は、MainWindowViewModel で ShowDialog メソッドを実行しています(TransitionViewModelBase は使っていません)。
プログラムのソースコードは、GitHub の MakViewModelBase(.NetFramework 用, .Net Core 用)の WeakEventViewModelBaseTestApp プロジェクトをご覧ください。
画面はこんな感じ。
ModalWindow01上に入力したデータが表示されるとともに MainWindow 側にも入力したデータが表示されます。
ビューモデルの開放の確認は次のとおり。
ModalWindow01 を閉じた後に MainWindow の GC ボタンをクリックするとビューモデルが開放されています。
「弱いイベントパターンを用いたリスナー登録機能を持つビューモデルベースを使った2ウィンドウを持つプログラム」への2件のフィードバック