6

ので問題が発生してConditionMultiTriggerます。私が次のことをした場合:

<Condition Binding="{Binding RelativeSource={RelativeSource
    AncestorType={x:Type ListView}}}" Property="IsEnabled" Value="True"/>

次に、この例外が発生します。

条件では、プロパティとバインディングの両方を使用することはできません。マークアップファイルのオブジェクト「System.Windows.Condition」でエラーが発生しました

しかし、私が次のことをするとき:

<Condition Binding="{Binding RelativeSource={RelativeSource
    AncestorType={x:Type ListView}}, Path=IsEnabled}" Value="True"/>

次に、この例外が発生します。

トリガーのプロパティと値の両方を指定する必要があります。マークアップファイルのオブジェクト「System.Windows.Condition」でエラーが発生しました

何が得られますか?重要な場合は、これがトリガー全体です。

<MultiTrigger>
    <MultiTrigger.Conditions>
        <Condition Binding="{Binding Path=IsSelected}" Value="True"/>
        <Condition Binding="{Binding Path=ItemsControl.AlternationIndex}"
                   Value="0"/>
        <Condition Binding="{Binding RelativeSource={RelativeSource
            AncestorType={x:Type ListView}}, Path=IsEnabled}"
                   Value="True"/>
    </MultiTrigger.Conditions>
    <Setter Property="Background"
            Value="{StaticResource evenSelected}" />
    <Setter Property="BorderBrush"
            Value="{StaticResource evenSelectedBorder}" />
</MultiTrigger>
4

1 に答える 1

12

この場合の API は混乱を招きます。 Conditionは 2 種類のマルチトリガーに使用され、使用されるプロパティは異なります。を使用する場合は、 プロパティとプロパティMultiTriggerを使用します。を使用する場合(これが必要です)、 aおよび aを指定します。したがって、コードを a を使用するように切り替えるだけで、問題なく使用できます。PropertyValueMultiDataTriggerBindingValueMultiDataTrigger

<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="{Binding Path=IsSelected}" Value="True"/>
        <Condition Binding="{Binding Path=ItemsControl.AlternationIndex}"
                   Value="0"/>
        <Condition Binding="{Binding RelativeSource={RelativeSource
            AncestorType={x:Type ListView}}, Path=IsEnabled}"
                   Value="True"/>
    </MultiDataTrigger.Conditions>
    <Setter Property="Background"
            Value="{StaticResource evenSelected}" />
    <Setter Property="BorderBrush"
            Value="{StaticResource evenSelectedBorder}" />
</MultiDataTrigger>
于 2011-01-10T18:39:01.613 に答える