2
私はCaliburn Microフレームワークを使用しています。それは実際問題ではありません。重要なのは、イベントモデルにイベントをパブリッシュすることです。イベントモデルには、そのイベント引数に表示される新しいビューモデルが含まれています。このイベントは、実際に新しいビューモデルをアクティブにするShellViewModel(ルートビューモデルとして見ることができます)でキャッチされます。カスタムイベント引数でビューモデルを渡す方法
したがって、イベントの引数にビューモデルを渡すことはできますか?現在のところ、次のようになります。
// where it gets published; "AnotherViewModel" is the actual class
public void AMethod()
{
var args = new ViewModelChangedEventArgs { ViewModelType = typeof(AnotherViewModel) };
PublishEvent(args);
}
// event handler
public void Handle(ViewModelChangedEventArgs message)
{
if (message.ViewModelType == typeof(AnotherViewModel))
{
// activate AnotherViewModel
}
if (message.ViewModelType == typeof(FooViewModel))
{
// activate FooViewModel
}
}
この方法はあまりにもエレガントではないようです。もっと良いアイデアはありますか?