我正在构建一个WPF应用程序并计划使用PRISM模式库。我的几乎所有视图都会显示或修改列表。我应该在哪里放置此对象以及如何将其提供给我的视图。我应该只有一个模块,在该对象的List中创建对象,然后在创建视图之前将对象提供给视图,然后将它们注入各个区域?或者有更好的方法吗?
答案 0 :(得分:1)
答案 1 :(得分:1)
Prism是一个非常有用的模式库,可用于您要做的事情。 我建议你看看http://compositewpf.codeplex.com/你可以找到很多关于Prism和MVVM架构的答案。您可以定义所需的模块,但如果视图类似于显示和修改列表,则最好的方法是确定从一个视图到另一个视图的更改内容。像绑定或属性或标签名称,以及从模板T4生成那些不同的视图(或者即使你想要一个一个地重新组装它们)它将是一个相同的模块,但具有不同的绑定,例如。
如果要在多个视图模型之间共享信息(无论它们在哪个区域/模块中),您可以实现存储单个List集合的共享服务,并在每个视图模型中注入该服务。然后,让每个viewmodel通过服务访问集合中的数据,因此当对集合执行CRUD操作时,更改将反映在所有视图模型中,然后您可以提供所有视图。
如果要使用该共享服务并将其导出为非共享导出,则将在所有视图模型之间共享同一个ObjectRepository实例。更新服务中的List属性时,可以使所有视图模型都使用它。 如果您将使用unity,请使用单例实例。
有关共享服务的更多详细信息http://msdn.microsoft.com/en-us/library/ff921122%28v=PandP.40%29.aspx#sec7