私には親の指揮者が1人います。その中に最初のビューモデルを表示したい。次に、最初のビューモデルが閉じられた後 (つまり、何らかの操作が行われた後)、別のビューモデルを表示したいと思います。
私はCaliburn.Micro.Contribを使用しています。ここでは、ConductResultがConductorに子 VM を表示します。その子が非アクティブ化されて閉じられた後にコルーチンを実行する、クールな拡張メソッドAfterClosingDoがあります。
ただし、を使用して別の ConductResult を実行するとAfterClosingDo
、基本的に次のようになります。
- 最初の子 VM は閉じられています
- Deactivated イベントが発生し、ConductResult が AfterClosing アクションを実行します
- AfterClosing で、親 Conductor の ConductResult を使用して 2 番目の子 VM を開きます
- 2 番目の子 VM が適切にアクティブ化されている
- ただし、最初の子 VM の非アクティブ化はまだ完了しておらず、コンダクターでnull項目がアクティブとして設定されています。
最初の VM は基本的にロード操作の進行状況を示し、2 番目の VM は実際のデータを示します。読み込みが完了したら、親 Conductor にデータを表示したいと思います (もちろん、2 番目の VM を使用します)。
それで、私の質問: でこれを行うためのクリーンな方法はありますかCaliburn.Micro
?
EventAggregatorを使用することを考えていましたが、それが最善の解決策であるかどうかはわかりません。