我正在制作一个 WPF 应用程序,我需要一个具有多个绑定路径的值转换器,这可能吗?
到目前为止,它适用于 1 条路径:
Binding="{Binding Path=Price, Converter={StaticResource vPriceConvertor}}"
我想把Price
和discount
给转换器,这样他就可以计算endprice
.
查看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 来实际进行转换,因为它支持多个源。
价值转换器旨在......用于价值转换。这就是为什么他们是价值转换器。
要做你想做的事,你应该在视图模型中创建一个属性EndPrice
,并在视图模型中计算它的值。您为什么要尝试将非 UI 逻辑带入 UI?
帕里斯 -
您始终可以创建一个包含价格和折扣的集合(在视图模型中),然后通过您的 XAML(通过 IValueConverter)传递它。
但是要重新迭代@Dennis 和其他人指出-那么您的转换器将具有计算逻辑-不建议这样做。