Conductor ViewModelによってレンダリングされたCaliburn.Microシェル (つまり、他のビューを含む空のXAMLビュー) があります。そこから、次の方法で画面を開きます。
ActivateItem(...)
通常、ユーザーは新しく表示されたダイアログからいくつかの操作を実行し、ボタン ( OK、Cancel、Build ....) をクリックすると、(シェル内で)別の画面に遷移します。
public MyDialog : Screen
{
public void Ok()
{
// TODO: Somehow tell the conductor or called of this class about this action.
}
}
この種のダイアログ アクション/メッセージ画面遷移を実現するための良い方法は何ですか?
- 単純な.NET イベントが可能です -- それは悪い考えではないでしょうか?
IEventAggregator
見方を変えることでCMも動くはず- ViewModel の結果が閉じられた後、Shell Conductor からその結果を確認する
TryClose()
-- 可能であるはずですが、CM でこれを達成する方法がわかりません。 - その画面からシェルコンダクタ インスタンスを参照します (IoC 経由または直接) - これは強い結合のようです。
アドバイスをお願いします。