假设我有一个视图绑定到ViewModel A其中有一个可观察的集合Customers。如何在MVVM模式中使用WPF转换器?
此MVVM模式的一个优点是,我还可以将视图绑定到使用不同数据填充它的视图模型。
但是,如果在我的查看转换器转换器显示我的客户,例如,我有一个“ContractToCustomerConverter”,它接受合同并返回相应的客户进行展示。
这样做的问题是转换器存在MVVM模式之外,因此不知道我的视图模型具有其它来源的客户。
- 是那里的查看的方式来视图模型传递到转换器,使其参与的MVVM模式提供分开呢?
- 有没有办法让我以某种方式在我的ViewModel中包含Converter,以便转换器使用ViewModel提供的当前依赖关系?
- 或转换器只是荣耀代码隐藏,因此不在MVVM模式中使用,所以如果您使用MVVM,那么你只需创建自己的“转换器”(你的ViewModel类的方法),它返回像Image对象,可见性对象,FlowDocuments等等,以便在视图上使用,而不是使用转换器?
(我看到在随附MVVM Template Toolkit download的WPF演示应用程序的使用转换器后,就对这些问题,请参阅“信使示例”拆包后)。
好的我认为你不应该在不同的虚拟机之间共享你的观点,但是一个ViewModel应该能够被不同的视图共享,因此MVVM的可测试性的好处,对吧?您应该能够将模拟视图和模拟模型连接到ViewModel,以确保从模拟模型接收到的所有数据组合都能生成暴露给视图的正确属性值。你会同意吗? – 2009-06-17 15:07:26