2013-08-18 33 views
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條件這樣的比較?我搜索了,但找不到任何解決方案。請幫忙。謝謝。

回答

0

您可以在綁定中創建一個轉換器,根據您的需要返回true或false。然後,而不是 '值= 「5」',你應該把

Value={StaticResource True} 

和定義靜態資源

<Application.Resources> 
    ... 
    <s:Boolean x:Key="True">True</s:Boolean> 
    <s:Boolean x:Key="False">False</s:Boolean> 
</Application.Resources> 
2

您可以使用PropertyChangedTriggermsdn):

在下面的例子我們檢查條件大於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> 
+0

有沒有辦法t o如果您需要綁定到多個屬性,請執行此操作? (即一個MultiDataTrigger相當於一個表達式混合?)或者我們僅限於在MultiDataTrigger中使用轉換器? – GrantA