WPFとPRISMを使用してWPFアプリケーションを作成しようとしています。私はMEFとmvvmも使用しています。イベントaggregastorを使用して互いに通信できる2つのビューモデルを持つことは可能ですか?例えば。ビューモデルAでパブリッシュし、ビューモデルBでサブスクライブしますか?そしてもしそうなら、どのように?私は複数のビューモデルを持つプログラムをビルドしており、これらのビューモデルのいくつかはお互いに通信する必要がありますが、イベントモデルを使用してViewModel Aで公開すると、ビューモデルBを購読することは決して同じイベントアグリゲータにはビューモデルBに接続されたビューを更新します。wpfのEventaggregatorを使用して、viewmodelからviewmodelへのPRISM MEF通信
0
A
答えて
0
唯一の可能性は、ViewModel "B"がロードされていないか、まだイベントに登録されていないことです。これが真実でない場合は、スニペットを貼り付けることをお勧めします。
0
WeakReference(弱いサブスクリプション)を使用して購読していますか?その場合、あなたのサブスクライバは他の場所で参照されていないため、イベントを公開する前にガベージコレクションが消滅している可能性があります。
1
このイベントアグリゲータ
を定義するための基本的な重要なステップは、(1)イベントAGG作成さ..
パブリッククラスYourEvent:CompositePresentationEvent {
}
(2)出版vm
eventAggregator.Get()。Publish(object);
(3)サブスクリプションVmを
YourEvent eventobj = eventAggregator.Get()。
if (subscriptionToken != null)
{
eventobj.Unsubscribe(subscriptionToken);
}
subscriptionToken = eventobj.Subscribe(YourEventHandler, ThreadOption.UIThread, false, yourfun);
0
EventAggregatorは常に同じです。各ViewModelを渡す必要があります。 プリズムとMEFあなたのためにこれを行うことができます。
あなたはMEF
0
でEventAggregatorの参照を注入することができますPRISM
のユニティを使用してコンストラクタでEventAggregatorをロードすることができますViewModel "B"とViewModel "A"の両方のインスタンスを持っていますか?サブスクリプションコードが実行される前にイベントを公開していますか?彼らはどちらも同じイベントにパブリッシュ/サブスクライブしていますか?
EventAggregator.GetEvent(Of MyEventType).Subscribe(Sub()
End Sub)
関連する問題
- 1. ViewからViewModelへのWPFイベントバインディング?
- 2. MVVMを使用したWPFのViewModelからのコマンドのトリガー
- 3. WPF Usercontrol MVVMを使用したデータバインディングViewModel
- 4. WPF usercontrolコマンドのウィンドウへのバインディングviewmodel
- 5. WPF&MVVM:テキストボックスから値を取得し、ViewModelに送信
- 6. ViewModelがビューインジェクション(WPF PRISM 4 MVVM)で初期化されていません
- 7. MVVM複数のビューPrismの同じViewModel
- 8. WPF Prism InteractionRequestTrigger:表示時にViewおよびViewModelを再作成
- 9. WPFのModel-View-ViewModel
- 10. PRISMに工場<ViewModel>の例?
- 11. プリズム/ MEFのViewModel:プロとViewModelには、プロパティを使用してMEFによって注入されたStockTraderRIのサンプルコードでCTOR
- 12. WPF MVVMの子ViewModelから親ViewModelのロジックを呼び出す方法
- 13. コントローラからviewmodelへのデータの送信方法textbox
- 14. View用のViewModelを別のViewModelに置き換えます。
- 15. 無視DomainModelからViewModelへのマッピング
- 16. データテンプレート内からviewmodelへのバインド
- 17. MVVMがViewModelに通知していないINotifyPropertyChangedモデルの使用
- 18. Viewmodel WPFを使用してスタックパネルにカスタムコントロールを追加
- 19. viewmodelのDatagrid.Items.Refresh()を使用
- 20. WPF Model-View-ViewModelツールキット
- 21. モデルからViewModelと通信する方法
- 22. MVVM-Lightメッセージングを使用したViewModelとモデル間の非同期通信?
- 23. ビューからコントローラへViewModelを渡す
- 24. 何らかの形のviewmodel-viewmodel通信を使用する代わりに、2つのビューモデルを1つに結合するのはどうですか?
- 25. DataModelからその親ViewModelへのプロパティへのバインド?
- 26. WPF設定スタイルStaticResource in ViewModel
- 27. XAMLでコンストラクタインジェクションを使用してViewModelを宣言する
- 28. methodAccessException匿名オブジェクト(MVVMCross)を使用してViewModelからWP7のViewModelに変数を渡すとき
- 29. MEFデータを必要とするViewModelをSilverlight用にインポートする
- 30. MVVMとWPFでWF4を使用してViewModelにCodeActivityを渡す方法