我在MVVM模板工具包下载中看到WPF演示应用程序中使用转换器后遇到了这些问题,请解答。解压后查看"Messenger Sample"。
我在MVVM模板工具包下载中看到WPF演示应用程序中使用转换器后遇到了这些问题,请解答。解压后查看"Messenger Sample"。
在MVVM中,我通常不使用转换器,除了纯UI任务(比如BooleanToVisibilityConverter)。在我的看法中,你应该在ContractViewModel中声明一个类型为CustomerViewModel的Customer属性,而不是使用ContractToCustomerConverter。
Note: - IMHO 表示“In My Humble Opinion”,可译为“依我拙见”。我已经使用Stackoverflow多年了,这是我第一次发布的答案。
我认为转换器属于MVVM中的View,考虑以下情况:
应用程序由3个团队开发,WebAPI团队、Web客户端团队和UI团队。由于UI经常更改,因此Web客户端团队(从WebAPI接收数据并将其放入ViewModel中)不能总是修改ViewModel以满足UI需求。当UI团队具有不同版本的设计时,这变得不可能。因此,UI团队必须有自己的方法来呈现数据,解决方案是转换器。
希望这能帮助某些人。
我来谈一下我的看法。
在合适的情况下,我会使用转换器。
解释: 有些情况下,您需要在UI中以多种方式表示模型中的一个值。我通过1种类型公开此值。另一种类型通过转换器处理。如果您要通过VM的2个属性公开1个值,则需要手动处理更新通知。
例如,我有一个带有2个int的模型:TotalCount
,DoneCount
。现在,我希望这两个值都显示在TextBlocks中,并且我还想显示完成百分比。
我使用DivisionConverter
多转换器来解决这个问题,该转换器接受前面提到的2个int。
如果我在VM中有特殊的PercentDone
,则需要在每次更新DoneCount
时更新此属性。