如何在WPF中的多个视图实例上共享分层数据?

时间:2016-07-15 09:56:37

标签: c# wpf mvvm

我正在构建一个项目浏览器,它看起来有点像一个简单的文件浏览器。为了使项目管理更容易,我希望它能够打开多个视图实例,这样用户就可以从一个视图复制/粘贴到另一个视图,而无需在一个视图中滚动。 "项目浏览器"主要由树控制组成,表示项目的结构。可以有多个项目,但树视图中只显示一个项目。我没有使用任何框架(只有Telerik Controls,但它们不会影响问题)但我知道MVVM模式。

视图中显示的数据是从执行DB Stuff的请求层收集的。由于所显示的项目也可以在节点/文件夹中具有许多项目,因此可以按需加载数据。初始化后不存在整个数据。

现在我的问题是,如果我将所有项目浏览器视图绑定到同一个View-Model,它们的行为就像" twins"。如果我在一个视图中选择一个项目,它也将在其他视图中被选中。那不是我需要的。我需要在所有视图中共享数据,而不是数据的可视状态。

我想,如果我为每个视图实例创建一个View-Model实例,我就可以处理它。但是我必须连接许多事件,因为每个View-Model的所有数据都必须是同步的。树/视图模型中的每个项目和子集合必须连接到其他实例中的对应项。我想知道是否有更简单/其他解决方案来解决我的问题(或者我是否在任何其他方面被误导)。

0 个答案:

没有答案