1

これは以前に尋ねられたと確信していますが、適切な答えが得られません。

シナリオは次のとおりです。

各行に 2 つのグラフがあるグリッドがあります。Graph1 の何かをクリックすると、Graph1 のコード ビハインドを使用してメッセージが送信されます。

Messenger.Default.Send<MyCustomMessageType>(message);

次に、グラフ 2 の ViewModel で、コンストラクターに登録します。

Messenger.Default.Register<MyCustomMessageType>(this, (message) => UpdateDataContext(message));

問題は、送信がそのタイプのビューモデルのすべてのインスタンスに送信されるようになったことです (これは理にかなっています)。

これが起こらないようにするにはどうすればよいですか?

4

3 に答える 3

0

答えてくれてありがとう。メッセージは私の問題ではありませんでした。問題は、使用すべきでないときに ViewModelLocator を使用していたことです。各行には独自の ViewModel が必要なので、ViewModelLocator の使用をやめ、コントロールの Onload で ViewModel をインスタンス化し、それを Datacontext として設定しました。でもアドバイスありがとう。

于 2013-07-04T14:27:06.773 に答える