3

MultiDataTrigger で比較を行うにはどうすればよいでしょうか? 通常の DataTrigger では、次のように記述できます。

<i:Interaction.Triggers>
       <ei:DataTrigger Binding="{Binding Count}" Comparison="LessThan" Value="5">
           <ei:ChangePropertyAction PropertyName="IsEnabled" Value="False"/>
       </ei:DataTrigger>
 </i:Interaction.Triggers>

しかし、このような比較を MultiDataTrigger 条件に入れるにはどうすればよいでしょうか? 検索しましたが、解決策が見つかりませんでした。助けてください。ありがとう。

4

2 に答える 2

3

PropertyChangedTriggermsdn )を使用できます:

以下の例では、Count プロパティの条件が 1 より大きく 100 より小さいことを確認します。

<TextBlock x:Name="textBlock" Background="Green" Text="{Binding Path=Count}">
    <i:Interaction.Triggers>
        <ei:PropertyChangedTrigger Binding="{Binding Path=Count}">
            <i:Interaction.Behaviors>
                <ei:ConditionBehavior>
                    <ei:ConditionalExpression>
                        <ei:ComparisonCondition LeftOperand="{Binding Count}" Operator="NotEqual" RightOperand="{x:Null}" />
                        <ei:ComparisonCondition LeftOperand="{Binding Count}" Operator="GreaterThan" RightOperand="1" />
                        <ei:ComparisonCondition LeftOperand="{Binding Count}" Operator="LessThan" RightOperand="100" />
                    </ei:ConditionalExpression>
                </ei:ConditionBehavior>                        
            </i:Interaction.Behaviors>
            <ei:ChangePropertyAction PropertyName="Background">
                <ei:ChangePropertyAction.Value>
                    <SolidColorBrush Color="Red"/>
                </ei:ChangePropertyAction.Value>
            </ei:ChangePropertyAction>
        </ei:PropertyChangedTrigger>            
    </i:Interaction.Triggers>
</TextBlock>
于 2013-08-18T16:14:56.600 に答える
0

必要に応じて true または false を返すバインディングでコンバーターを作成できます。次に、「Value="5"」の代わりに、

Value={StaticResource True}

静的リソースを定義します

<Application.Resources>
    ...
    <s:Boolean x:Key="True">True</s:Boolean>
    <s:Boolean x:Key="False">False</s:Boolean>
</Application.Resources>
于 2013-08-18T15:17:09.397 に答える