11

wpf データバインディングを使用する場合、コンバーターをカスケードできるかどうか疑問に思います。たとえば、次のようなもの

<SomeControl Visibility="{Binding Path=SomeProperty, Converter={StaticResource firstConverter}, Converter={StaticResource secondConverter}}"/>

まったく可能ですか、またはコンバーター A と B の機能を組み合わせたカスタム コンバーターを作成する必要がありますか?

4

2 に答える 2

18

JoshSmithの「 PipingValueConverters」に似たソリューションを探しているかもしれません。

彼の記事では、彼は次のことを示しています。

<local:ValueConverterGroup x:Key="statusDisplayNameGroup">
  <local:IntegerStringToProcessingStateConverter  />
  <local:EnumToDisplayNameConverter />
</local:ValueConverterGroup> 

次に、次のように複数値コンバーターを使用します。

<TextBlock Text="{Binding XPath=@Status, 
             Converter={StaticResource statusDisplayNameGroup}}" />

お役に立てれば!

于 2008-10-17T11:34:43.757 に答える
7

MultiBindingを使用して、同じソースに 2 回バインドすることもできますが、単一のバインディングで異なる変換を行います。何かのようなもの:

<SomeControl>
    <SomeControl.Visibility>
        <MultiBinding Converter="{StaticResource combiningConverter}">
            <Binding Path="SomeProperty" Converter="{StaticResource firstConverter}"/>
            <Binding Path="SomeProperty" Converter="{StaticResource secondConverter}"/>
        </MultiBinding>
    </SomeControl.Visibility>
</SomeControl>

次に、「CombineConverter」に、2 つのバインディングからの値を結合するロジックを配置します。

于 2008-10-17T11:55:24.730 に答える