【发布时间】:2011-06-03 17:49:58
【问题描述】:
我有一个包含许多对象的 WPF/Entity Framework (4.0) 项目。我想构建应用程序,以便我可以在视图模型之间共享对象选择状态。
例如:我们有 Cars、Drivers、Passengers 和 Cargo 类。我们还有 CarList、DriverList 等的 UserControls 和 CarEditor、DriverEditor 等的编辑器窗口。此外,我们还有所有这些的视图模型(CarListViewModel、DriverListViewModel、CargoEditorViewModel 等)。这一切都构成了一个可停靠界面,用户可以在其中打开多个对象列表、编辑器和查看器。
我想要的是一个具体的代码示例,说明如何连接多个视图模型,以便在 CarList 中选择一辆车将导致该车在 CarEditorView 中生效,但也可以在上下文有效的任何其他视图中选择(例如 DriverByCarView - 如果有过滤谓词,则只是 DriverList)。
有很多基于这个问题的建议和讨论。似乎占主导地位的两种方法是:
其中一种方法是否比另一种更好?
有没有人以书面或小代码项目的形式提供这两种方法中的一种/两种方法的具体示例?
我仍在学习 WPF,因此可以提供指向阅读 API 基础知识的入口点的指针,但我通常会查看代码示例。
谢谢
如果有人感兴趣,这里有一些其他类似的讨论:
【问题讨论】:
-
作为关于前两篇链接文章的附录:只有当状态共享在模型之间而不是视图之间时,消息传递方法才有效;而封闭的视图模型在另一种情况下有效。不确定这是否正确/有效。
标签: c# wpf mvvm data-binding