多くの場合Current
、自分のMainViewModel
(または ViewModel の) の静的プロパティがあり、ViewModel のコンストラクターでそのプロパティを設定します。次に、アプリケーションの他の場所から、問題の ViewModel への参照を取得できます。
ViewModel について
public MainViewModel()
{
Current = this;
}
public static MainViewModel Current { get; set; }
アプリケーションのその他の場所:
MainViewModel.Current.DoSomething();
ルーティングされたコマンド
通常、ルーティングされたコマンドはデータバインドされているため、コマンド ロジックはそれが書き込まれるデータ コンテキストによって異なります。Window1 の DataContext が MainViewModel で、Window2 の DataContext が SecondViewModel の場合、Window2 のボタンで MainViewModel のコマンドを実行するには、そのボタンの DataContext として MainViewModel のインスタンスへの参照が必要です。