何时在mvvm应用程序中使用值转换器?

时间:2010-02-10 15:15:31

标签: .net wpf mvvm valueconverter

如果使用MVVM设计模式实现WPF应用程序,是否存在使用值转换器的情况?在我看来,值转换器与视图模型完全相同,即为视图准备数据。

那么,价值转换器有一些很好的用途吗?

最诚挚的问候 Oliver Hanappi

2 个答案:

答案 0 :(得分:8)

值转换器可以方便地将逻辑状态转换为仅与UI相关的可视状态。例如,BooleanToVisibility转换器在MVVM应用程序中占有一席之地。

但是,我绝不会建议使用转换器来执行任何具有各种输入参数的复杂转换,或者在其实现中调用任何业务逻辑。那是VM的东西。

答案 1 :(得分:6)

这个问题在我的脑海中浮现,因为在我意识到我可以在我的视图模型中完成所有这些操作之前,我为我的项目编写了大量的值转换器。我还在使用它们 - 我只是没有从XAML中引用它们;我的视图模型明确地调用它们。

即使您不打算从XAML调用值转换器,也可以将视图模型中的值转换解耦,而只是从视图模型中调用它们。它使值转换逻辑更容易测试,更可重用和可组合。我甚至在我的模型的数据访问层中使用值转换器,没有明显的不良影响。