マスターウィンドウと、マスター ウィンドウのデータグリッド内の特定の行をダブルクリックして開く詳細ウィンドウの 2 つのウィンドウがあります。詳細ウィンドウのデータを保存するときに、マスター ウィンドウのデータグリッド コントロールを更新したいと考えています。
(いくつかの無関係な詳細: 各ウィンドウはBaseWindow
クラスから継承し、 EF5 から継承するクラスの独自のコピーを持っていますDbContext
。部分クラスにイベントを追加し、呼び出されるたびにこのイベントを発生させるようSave
にオーバーライドしました。それは実際にはイベントハンドラーをアタッチしています。)SaveChanges
SaveChanges
イベントにイベント ハンドラーをアタッチすることで、これを実行できることはわかっていますSave
。ただし、ウィンドウがどの順序で閉じられるかはわかりません。マスターウィンドウが最初に閉じられた場合、詳細ウィンドウのインスタンスによって保持される参照が引き続き存在します。
マスター ウィンドウのイベントをリッスンしてClosing'/'Closed
、「保存」イベントに関連付けられたハンドラーをいつ解放するかを判断できるようにすると、逆に同じ問題が発生します。マスター ウィンドウは、その後でも詳細ウィンドウへの参照を保持します。詳細ウィンドウが閉じます。
hereWeakEventManager
で説明されているように実装できることは承知していますが、使用できるより簡単な手法があるかどうかを知りたいです。(物事を複雑にしすぎる傾向があると言われています。)
(私はMVVMを使用していません。)