在我们的WPF应用程序中,我们希望使用基本的MVVM模式。我们正在讨论它,出现了一些关于ViewModel/View关系和验证的不确定性。你会说以下是一个很好的理解吗?
任何反馈都很感激。
发布于 2009-04-07 15:06:56
每个视图都有一个并且只有一个ViewModel
我认为,如果您严格遵循模式,那么每个视图都只有一个ViewModel。在我们的应用程序中,需求在流中间发生了变化,让视图引用成为两种不同的ViewModels是最容易的。根据您实现模式的方式,这可能是可能的,也可能是不可能的。
有一个ViewModel服务两个视图的实例吗?
是的,这是这种模式的优点之一。
验证仅由ViewModel处理。
不一定。我们选择让我们的模型类实现IDataErrorInfo并自己进行验证。这确保了无论在哪里使用Model类,验证都是相同的。如果验证需要更改,则只需在一个地方进行验证。
这个模型太蠢了
它只会像你想要的那样愚蠢。如果愿意,可以在模型中包括验证和业务规则。
发布于 2009-04-08 05:43:17
以上各点,我是同意的。只有一个注释:您的视图模型可以在内部使用另一个视图模型。使用这种方法,您可以将视图划分到具有不同视图模型的两个区域。只需使用ContentPresenter,将其绑定到所需的视图模型属性(获取所需的视图模型),并使用DataTemplate将所需的视图与视图模型关联起来。
发布于 2009-04-07 11:23:14
有一个ViewModel服务两个视图的实例吗?
剥皮的应用程序可能会利用这一能力。
--模型相当愚蠢,但模型本身不处理验证
这个模型可以像你喜欢的那样聪明。它可以包括“验证”,以确保完整性,但验证不会包括在UI中出现的消息。
https://stackoverflow.com/questions/725171
复制相似问题