新しいプロジェクトに mvvm を使用しています。ビューモデル間でメッセージを送信するためのメッセージ ディスパッチャがありますが、あるケースではビューでメッセージを受信する必要があります。このビューには、詳細ビューに関連するツールバーを含む必要があるツールバー パネルが含まれています (たとえば、顧客の編集には、保存、元に戻す、やり直し、キャンセルを含むツールバーが必要です)。
問題は、これを書くことができるようにするには、ビュー内のメッセージを購読する必要があることです:
broker.Subscribe<AddToolbarPanelMessage>(x=>toolbar.Add(x.Panel));
しかし... 1) messageBroker の DI を取得するために、コンテナー (XAML ではない!) からビューを取得する必要があります。2) static IoC.Container.Resolve(); を呼び出します。コンストラクター内
オプション 2 は、コンテナーがデザイン モードで構成されていないため、VS2010 デザイナーを壊しました...
何か案が?ビューはビューモデルからは見えません。静的な ViewModelLocator を使用します。