我们如何在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条件下进行这样的比较呢?我搜索过,但找不到任何解决方案。请帮忙。感谢。
答案 0 :(得分:2)
您可以使用PropertyChangedTrigger
(msdn):
在下面的示例中,我们检查条件大于1且小于100的Count属性:
<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>
答案 1 :(得分: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>