Over StackOverflow问题How can WPF Converters be used in an MVVM pattern?我知道值转换器不应该用在MVVM模式中,因为值转换器的功能应该由ViewModel本身处理。您的ViewModel应该将XAML元素作为属性公开吗?
这是有道理的。
但我记得读过你应该不会将XAML元素暴露给视图,而是只显示View然后使用DataTemplates绑定和显示的数据集合。
然而,转换器似乎相当强大(例如,因为它们是在MVVM Template demo使用,请参阅“信使示例”拆包之后)在他们可以将对象转换为对象,例如消息对象到FlowDocument对象,或客户对象到可见性对象,或自定义状态对象到图像等
所以,如果一个ViewModel去承担价值转换器的功能,它将不得不公开XAML元素和属性,如StackPanel,Visibility,Color,FlowDocument等等,对吗?
有谁看到任何理由的价值转换器做一个视图模型不应该公开这些丰富的XAML对象?