3

私のアプリケーションは、有名な IDialogService のバリアントを使用して、多数の子ビューを作成します。特定のイベントまたは一連のイベントが発生したときに、これらのビューをプログラム ベースでシャットダウンできるようにする必要があります。

まず、Views の Close メソッドをどのように公開すればよいかを念頭に置いてください。

  1. ビューの DataContext (ViewModel) を破棄する必要があり、
  2. View.Dispatcher.InvokeShutdown は、閉じているビューごとに呼び出す必要があります。

これまでのところ、Closing イベントにフックしてクリーンアップを処理するためのビヘイビアと、ViewModel の次のようなアクションが混在しています。

vm.OnCloseAction = ()=> view.Close();

ViewModel から View を実際に閉じる処理を行います。

ただし、これは私にとって特にエレガントではありません。誰かが他のアイデアや代替アプローチを持っていますか?

4

1 に答える 1

3

1 つのアイデアは、使用しているメッセージング フレームワーク (私が使用している MVVM Light の Messenger など) を使用し、クロージング メッセージ (またはそのようなもの) をセットアップし、終了時に何かを行う必要があるものをすべて用意することです。その締めくくりのメッセージのために。

于 2012-06-22T01:59:02.187 に答える