タイトルが示すように...どうすれば別のビューモデルを見つけることができますか....
私の最初の推測は、それが使用されているユーザーコントロールを検索してそれを通過することです.
おそらく、VM 間の通信を可能にする一般的なメッセージング メカニズムを使用する必要があります。たとえば、MVVM Light を参照してください。
Messengerクラスを利用できます。
あるViewmodelに存在するメソッドを他のViewModelで実行したい場合.. ViewModel (アクセス元) から ViewModel (実行したいイベントを保持している) にメッセージを送信するだけで、それを実行できます。イベント。
イベントを宣言したクラスのコンストラクタにメッセージを登録します。そのイベントを使用したい時点で、(アクセスしたい)ビューモデルからメッセージを送信します。
2 つのビュー モデルはどのように関連していますか? 一方は他方の親ですか?この最良のシナリオでは、イベントまたはデリゲートを一方がサブスクライブする一方に公開するだけです。
同様に、共通の親を持つ場合、これは親ビュー モデルで行うことができます。
関係がない場合は、すべての共通機能をベース ビュー モデル クラスに入れてみませんか。イベントまたはデリゲートがベース ビュー モデルで公開されている場合、それを拡張するすべてのビュー モデルは内部的にサブスクライブできます。