viewmodel在数据绑定之外的作用?

时间:2010-06-10 21:12:32

标签: c# .net silverlight mvvm silverlight-4.0

我对视图模型的作用超出数据绑定有点困惑。我有一个内置Silverlight的菜单。菜单包含x个在运行时确定的菜单项。我想补充的一个功能是每个菜单项在悬停时都有不同的文字颜色。

视图的作用是使用颜色选择器方法还是视图在其后面的代码中处理它?<​​/ p>

2 个答案:

答案 0 :(得分:5)

通常情况下,如果可能的话,我会在XAML中保留着色/样式 - 我对ViewModel的看法是它负责以View可以使用的方式从Model中提供所有数据(即非图形内容)。 / p>

如果是确定颜色的复杂逻辑并且要重复使用 - 我可能会想把它放在ViewModel中。

答案 1 :(得分:2)

数据绑定过程使用视图模型作为一种“安全”方式,允许您对特定控件所看到的记录进行排序/过滤/分组,而不必(必然)更改实际绑定数据集(即是,除非/直到你告诉它)。 (FMI阅读Bea's article here。)

我同意Goblin的观点,因为颜色等表示方面最好在XAML中保持独立,例如在该控件使用的DataTemplate中。