1

WPFアプリケーションを作成していますが、複数のバインドパスを持つ値コンバーターが必要ですが、それは可能ですか?

これまでのところ、1つのパスで機​​能します。

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

Priceとをコンバーターに渡して、discount彼がを計算できるようにし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>

複数のソースをサポートしているため、実際に変換を行うには、IValueConverterの代わりにIMultiValueConverterを実装します。

于 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 に答える