1

我正在制作一个 WPF 应用程序,我需要一个具有多个绑定路径的值转换器,这可能吗?

到目前为止,它适用于 1 条路径:

Binding="{Binding Path=Price, Converter={StaticResource vPriceConvertor}}"

我想把Pricediscount给转换器,这样他就可以计算endprice.

4

3 回答 3

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 来实际进行转换,因为它支持多个源。

于 2012-10-02T13:24:11.183 回答
5

价值转换器旨在......用于价值转换。这就是为什么他们是价值转换器

要做你想做的事,你应该在视图模型中创建一个属性EndPrice,并在视图模型中计算它的值。您为什么要尝试将非 UI 逻辑带入 UI?

于 2012-10-02T13:24:25.300 回答
1

帕里斯 -

您始终可以创建一个包含价格和折扣的集合(在视图模型中),然后通过您的 XAML(通过 IValueConverter)传递它。

但是要重新迭代@Dennis 和其他人指出-那么您的转换器将具有计算逻辑-不建议这样做。

于 2012-10-02T14:11:23.427 回答