我正在制作一个WPF应用程序,我需要一个带有多个绑定路径的值转换器,这可能吗?
到目前为止,它适用于1条路径:
Binding="{Binding Path=Price, Converter={StaticResource vPriceConvertor}}"
我想将Price
和discount
提供给转换器,以便他可以计算endprice
。
答案 0 :(得分:5)
查看MultiBinding课程。例如:
<TextBlock Name="textBlock" DataContext="{StaticResource myViewModel}">
<TextBlock.Text>
<MultiBinding Converter="{StaticResource vPriceConvertor}"
ConverterParameter="myParameter">
<Binding Path="Price"/>
<Binding Path="Discount"/>
<!-- Insert other paths here -->
</MultiBinding>
</TextBlock.Text>
</TextBlock>
实施IMultiValueConverter而非IValueConverter实际进行转换,因为它支持多个来源。
答案 1 :(得分:5)
值转换器旨在...用于值转换。这就是为什么他们重视转换器的原因。
要执行您想要的操作,您应该在视图模型中创建属性EndPrice
,并在视图模型中计算其值。为什么要尝试将非UI逻辑引入UI?
答案 2 :(得分:1)
Parys -
您始终可以创建一个包含价格和折扣的集合(在视图模型中),然后将其传递给您的XAML(通过IValueConverter)。
但要重新迭代@Dennis和其他人指出 - 那么你的转换器将具有计算逻辑 - 这是不推荐的。