在相关视图之间共享数据的好模式是什么?
我有一个应用程序,其中 1 个表单包含许多小视图,每个视图的行为或多或少彼此独立(它们通过事件总线进行通信/交互)。我经常需要将相同的对象传递给子视图。有时我需要将同一个对象传递给子视图,然后子视图将其传递给另一个子视图本身包含。
在父表单(视图)中包含的所有视图之间共享此数据的好方法是什么?
我研究了 CAB 及其方法,每个“视图”都有一个“根工作项”,该工作项的字典包含所包含的视图之间的共享“状态”。
这是最好的方法吗?只是一个共享字典,一个根视图下的所有视图都可以访问吗?
我目前的方法是在视图上有一个函数,允许为该视图设置对象。就像是
view.SetCustomer(Customer c);
然后,如果视图包含一个子视图,它知道将其设置在子视图 ala 上:
this.childview1.SetCustomer(c);
该应用程序是用 C# 3.5 编写的,用于使用带有结构映射的 MVP 作为 IoC/DI 提供程序的 winforms。