【发布时间】:2013-05-29 09:07:59
【问题描述】:
我正在做一个项目,我尝试实现 MVVM 以正确地将业务逻辑与视图分离。尽管我阅读了很多关于这种模式的论文并查看了示例应用程序,但我仍然有一些未解决的问题。
我的模型由一组 Documents 组成,其中包含不同类型的 DocumentObjects 列表。
DocumentObjects 包含计算逻辑,并与彼此以及与Document 进行交互。
然后我有我的视图和视图模型(Document 各一个,DocumentObjects 各一个)
为了以正确的 MVVM 模式实现这一点,我会让我的DocumentView 显示DocumentObjects 列表(例如ItemsControl)。然后 WPF 将通过 DataTemplate 条目选择要使用的正确视图。
这种方法的问题是我想在我的Document 中保留一个实际DocumentObjects 的列表,而不是他们的视图模型。然后,如果我使用 DataTemplate 来描述要用于对象的视图,我无法指定我希望使用的视图模型...
我的问题是:如何在他们不知道的情况下在现有模型对象之上构建“VVM”部分? 或者更现实地说,您将如何更改此设计模式以符合 MVVM 指南?
(我想要的是一种“模型优先”的实例化。)
其中一个示例应用程序引发了我的问题:Reed Copsey's blog post on MVVM:
<DataTemplate DataType="{x:Type model:FeedItem}">
<TextBlock Text="{Binding Path=Title}" />
</DataTemplate>
FeedItem 模型由使用DataTemplate 的视图直接使用。如果FeedItem 必须有ViewModel 怎么办?
(我知道我的设计可能不是最好的,我愿意接受建议!)。
【问题讨论】:
标签: c# wpf design-patterns mvvm instantiation