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

Oli*_*ppi 1 .net wpf mvvm valueconverter

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

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


诚挚的问候Oliver Hanappi

oll*_*SFT 8

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

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


Rob*_*ney 6

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

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