我正在做一个项目,我尝试实现 MVVM 以正确地将业务逻辑与视图分开。尽管我阅读了很多关于这种模式的论文并查看了示例应用程序,但我仍然有一些悬而未决的问题。
我的模型包含一组包含不同种类Documents
的列表。DocumentObjects
它们包含计算DocumentObjects
逻辑,并且相互之间以及与Document
.
然后我有我的 Views 和 ViewModels (每个Document
一个,每个一个DocumentObjects
)
为了以正确的 MVVM 模式实现这一点,我会让我DocumentView
显示DocumentObjects
列表(ItemsControl
例如)。然后,WPF 将通过 DataTemplate 条目选择要使用的正确视图。
这种方法的问题是我想在我Document
的 , 列表中保留实际DocumentObjects
而不是他们的视图模型。然后,如果我使用 DataTemplate 来描述用于对象的视图,我无法指定我希望使用的视图模型......
我的问题是:如何在他们不知道的情况下在已经存在的模型对象上构建“VVM”部分?或者更现实地说,您将如何更改此设计模式以符合 MVVM 指南?
(我想要的是一种“模型优先”的实例化。)
其中一个示例应用程序引发了我的问题:在Reed Copsey 关于 MVVM 的博客文章中:
<DataTemplate DataType="{x:Type model:FeedItem}">
<TextBlock Text="{Binding Path=Title}" />
</DataTemplate>
该FeedItem
模型由视图直接使用,使用DataTemplate
. 如果FeedItem
必须有一个ViewModel
怎么办?
(我知道我的设计可能不是最好的,我愿意接受建议!)。