WPF& MVVM - 如何在多个视图模型中共享一个模型

时间:2015-02-24 19:04:31

标签: c# wpf mvvm model viewmodel

我目前正致力于使用WPF和MVVM设计模式开发应用程序。我正在尝试做以下事情:

我想有两个模特,父母和孩子。父类有多个子类对象,每个子对象共享一个父对象。

然后,我想创建两个视图模型,父视图模型和子视图模型。另外,我想让父视图模型具有父模型,并将子模型分配给父模型中的每个子视图模型。

我能想到的一个解决方案是让父视图模型具有子视图模型,并将子模型分发给父视图模型中的每个子视图模型。

但是,我不想让父视图模型具有子视图模型,因为已经在模型中创建了父视图和子视图的关系。如果这样做,您也必须为视图模型建立相同的关系。

所以,我想与子视图模型和父视图模型共享一个父模型,而不让父视图模型具有子视图模型。

你能解决这个问题吗?谢谢。

1 个答案:

答案 0 :(得分:0)

感谢您回答我的问题。我使用父视图的附加行为解决了这个问题。这就是我所做的。

  1. 我注册了名为“ChildModels”的自定义属性,它绑定了ObservableCollection。
  2. 我创建了名为“OnChildModelsPropertyChanged”的行为,并在从父视图模型中提供子模型时触发它。
  3. 在OnChildModelsPropertyChanged方法中,我创建了与子模型相同数量的子视图模型,并为每个子视图模型提供了子模型
  4. 这创建了父模型和子模型之间的关系,而不让父视图模型和子视图模型相互了解。
  5. 我的解释对你来说可能听起来很糟糕。但这几乎就是我所做的一切。

    再次感谢您的回答,并拥有良好的编码生活!!