我的一個視圖包含一個下拉菜單。在進行選擇時,必須讓程序中的視圖模型和所有其他視圖模型知道該更改,以便他們可以更新其視圖。 當前每個視圖模型都包含它自己的選擇副本,當它被更改時,我有 手動更新它們(我只是每個都有一個公共Refresh(int newVal))。有沒有更好的方法來做到這一點?如何通知多個視圖模型的變量變化?
0
A
回答
1
可能的方法可能是使用事件聚合器。聚合器用於在發佈者和接收者之間分發消息。
需要發送信息登記與EventAggregator
的消息類型和對象需要的對象收到也認購他們在EventAggregator
。
有很多方法可以實現這一點,我建議使用您選擇的任何MVVM框架。大多數常見的框架都提供了經過時間驗證的實現。
一個例子是Caliburn Micro。 CM框架已經爲此提供了EventAgregator
類。
查看此處的示例:Introduction to messaging with Caliburn.Micro’s EventAggregator。
1
你可以使用一個事件聚合器並通過它發佈一個可以被每個視圖模型處理的事件(可能在某種基類中?)。
1
使用(聚合)事件。
在視圖加載時訂閱事件,卸載視圖時取消訂閱並確保在視圖模型加載時初始化視圖模型中的變量。然後在選擇更改時發佈事件(將新數據作爲參數傳遞)。
相關問題
- 1. 當數據/模型發生變化時通知視圖/活動
- 2. 視圖模型的對象綁定 - 如何通知UI時,其性能變化
- 3. RoboBinding如何視圖模型知道變量返回
- 4. Durandal構建綁定視圖模型變量的變化值
- 5. 如何通知第二個線程變量的變化
- 6. 如何註冊音量變化通知?
- 7. 通知有關變量的變化
- 8. 在變量變化上創建通知
- 9. 如何監視類變量的變化?
- 10. 模型應該如何通知有關狀態變化
- 11. MVVM:模型狀態改變時通知視圖
- 12. 如何從流星視圖的變化事件更新模型?
- 13. 如何跟蹤AngularJS中視圖模型的變化?
- 14. Rails模型變量意外變化
- 15. 通知時NSOutlineView子含量的變化
- 16. WPF/MVVM - 應該視圖模型保持不變,只是模型的變化?
- 17. 通知一個變量Android
- 18. 如何更新視圖變化上的變量
- 19. 如何通知RecyclerView項目的變化
- 20. 如何通知父母的變化
- 21. 檢查多個變量的值變化
- 22. 從多個模型訪問變量
- 23. 如何檢查多個變量並初始化非空變量?
- 24. 如何知道變量的類型?
- 25. 使用JAGS的多個協變量的泊松迴歸:如何簡化模型
- 26. 如何從視圖文件中訪問視圖模型中定義的變量
- 27. 如何監視從另一個DLL變量的變化?
- 28. 如何使用Yii中的多個模型使單個視圖變成wigeti?
- 29. WPF通知不能使用多個視圖模型
- 30. 通知:變量似乎未初始化