将超过1个参数传递给转换器

时间:2010-02-05 19:05:34

标签: wpf data-binding converter

问题:如何将对象的实例从视图模型传递到转换器以及要转换为转换器的值?


信息:我正在为我们工厂车间接收货物的人员制定库存计划。在收到货物时,他们会记下运输公司是谁以及司机是谁。为此,我想设置一对组合框。当他们选择托运人组合框并选择托运人时,驱动程序组合框将反映此更改。

我的计划是在ShipmentViewModel中列出托运人组合框所绑定的托运人列表(其中包含司机列表)。此托运人列表只是我从数据库中提取的GUID列表。货件的托运人将为所选的托运人和所选的驾驶员分别拥有一个属性。

我想要做的是将托运人列表的实例与托运人的GUID一起传递给转换器(从ShipmentVM获得)。转换器将GUID与发货人列表进行比较,并将组合框返回到ShipperVM的实例。驱动程序组合框绑定到ShipperVM的驱动程序列表。将此列表与驱动程序的GUID(也是从ShipmentVM获取)传递给另一个返回驱动程序名称的转换器。

我正在根据M-V-VM架构在Visual Basic和XAML中编程。

P.S。说“你不能将超过1个参数传递给转换器。”是完全合法的回应。我只需要确认。我开始认为情况就是这样......

1 个答案:

答案 0 :(得分:15)

如果你需要将多个“东西”传递给转换器,你真正想要的是MultiValueConverter,它可以接受N个输入值。

http://msdn.microsoft.com/en-us/library/system.windows.data.imultivalueconverter.aspx