0

MultiDataTrigger を作成したい。条件の 1 つの中で、コンバーターを使用する必要があります。そこでしか使わないので、コンバーターをリソースとして定義せず、ローカルでしか使用したくありません。

だから私はこのMultiDataTriggerを作りました:

<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="Property1" Value="Value1" />
        <Condition ... />
    </MultiDataTrigger.Conditions>
    <Setter Property="SomeProp" Value="SomeVal"/>
</MultiDataTrigger>

コンバーターをリソースとして定義しないようにするためのこのバインディング ( https://stackoverflow.com/a/2304330/5333340に基づく):

<Binding Path="Property2">
    <Binding.Converter>
        <converterNamespace:MyConverter/>
    </Binding.Converter>
</Binding>

2 つの部分を組み合わせます。

<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="Property1" Value="Value1" />
        <Condition Value="Value2">
            <Binding Path="Property2">                 <!-- Compiler -->
                <Binding.Converter>                    <!-- does     -->
                    <converterNamespace:MyConverter/>  <!-- not      -->
                </Binding.Converter>                   <!-- like     -->
            </Binding>                                 <!-- this!    -->
        </Condition>
    </MultiDataTrigger.Conditions>
    <Setter Property="SomeProp" Value="SomeVal"/>
</MultiDataTrigger>

しかし、コンパイラは「タイプ 'Condition' は直接コンテンツをサポートしていません」と文句を言います。(オリジナル: "Der Typ 'Condition' unterstützt keine direkten Inhalte.")

コンバーターをリソースとして定義する必要なく MultiDataTrigger を機能させる方法はありますか?

4

1 に答える 1