[英]Pattern for sharing data between views (MVP or MVVM)
在相關視圖之間共享數據的最佳模式是什么?
我有一個應用程序,其中1個表單包含許多小視圖,每個視圖或多或少彼此獨立(它們通過事件總線進行通信/交互)。 我經常需要將相同的對象傳遞給子視圖。 有時,我需要將同一對象傳遞給子視圖,然后子對象將其傳遞到另一個子對象本身。
在父表單(視圖)中包含的所有視圖之間共享此數據的一種好方法是什么?
我研究了CAB及其方法,每個“視圖”都有一個“根工作項”,該工作項有一個字典,其中包含在所包含的視圖之間的共享“狀態”。
這是最好的方法嗎? 只需共享字典,根視圖下的所有視圖都可以訪問?
我現在的當前方法是在視圖上具有一種功能,該功能允許為該視圖設置對象。 就像是
view.SetCustomer(Customer c);
然后,如果該視圖包含一個子視圖,則知道可以在子視圖ala上進行設置:
this.childview1.SetCustomer(c);
該應用程序使用C#3.5編寫,用於使用MVP和結構圖作為IoC / DI提供程序的Winforms。
Josh Smith和Marlon Grech將調解器模式與使用弱引用的實現一起使用,以防止內存泄漏。 看一下這個:
http://marlongrech.wordpress.com/2009/04/16/mediator-v2-for-mvvm-wpf-and-silverlight-applications/
似乎共享數據應該屬於基礎模型,而不是視圖。
至於這種共享是如何發生的,我認為正在創建單個視圖,並為其提供對其模型的引用? 這似乎是共享使用的適當機制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.