不同的模型在MVVM

本文关键字:MVVM 模型 | 更新日期: 2023-09-27 18:04:08

我正在使用Linq to sql,它为我提供了一些基本的类,如Car。这样我就得到了一个汽车列表IQueryable

这些汽车然后被我的业务逻辑处理为CarProcessed,并添加了两个属性,这样我就有了一个 illist

这个列表是由我的silverlight应用程序调用的,我要在网格中使用这个列表,并使用这些信息来做一些事情,以便根据汽车的类型改变线的颜色。因此,我将得到CarModel与一个颜色属性,我将能够直接绑定到我的视图。

进程是否正常?这意味着我不是在使用一个模型,而是三个。一个用于数据层,一个用于业务逻辑层,最后一个用于表示层。

你认为这是正确的吗?

不同的模型在MVVM

我想这要看情况。如果你在模型之间有一些复杂的转换,那么它们可能会影响性能。否则,你所做的是一种常见的做法给定不同的设备顺便说一下,接口需要不同的表示模型,业务逻辑管理具有某些属性的实体UI和Data都不需要知道它,最后你的数据需要一些特定的转换来保存和加载,可能需要一些其他的。

但是,请尝试查看DAO和DTO等常见模式,看看是否没有其他模式适合您的需求。

还有,记住多模型表示是MVVM的优点之一。

如果color属性仅用于表示目的,则通常不会使其成为模型的一部分,而是为显示CarProcessed对象的控件定义一个DataTemplate。

在这个DataTemplate中,或者在DataTemplates Style中,你定义了一个触发器来检查你的CarProcessed的特定条件,并相应地设置颜色。

下面是WPF教程中处理DataTemplates的部分:http://www.codeproject.com/KB/WPF/GuidedTourWPF_4.aspx