1

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

那么,价值转换器有什么好的用途吗?

最好的问候
奥利弗·哈纳皮

4

2 回答 2

8

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

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

于 2010-02-10T15:43:00.490 回答
6

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

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

于 2010-02-10T19:24:19.827 回答