簡體   English   中英

在視圖之間共享數據的模式(MVP或MVVM)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM