Sar*_*els 5 wpf xaml binding triggers multitrigger
我遇到麻烦Condition了MultiTrigger.如果我执行以下操作:
<Condition Binding="{Binding RelativeSource={RelativeSource
AncestorType={x:Type ListView}}}" Property="IsEnabled" Value="True"/>
Run Code Online (Sandbox Code Playgroud)
然后我得到这个例外:
条件不能同时使用Property和Binding.标记文件中对象'System.Windows.Condition'出错
但是,当我执行以下操作时:
<Condition Binding="{Binding RelativeSource={RelativeSource
AncestorType={x:Type ListView}}, Path=IsEnabled}" Value="True"/>
Run Code Online (Sandbox Code Playgroud)
然后我得到这个例外:
必须为Trigger指定Property和Value.标记文件中对象'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>
Run Code Online (Sandbox Code Playgroud)
Abe*_*cht 11
在这种情况下,API令人困惑. Condition用于两种不同类型的多触发器,并且使用的属性是不同的.使用时MultiTrigger,您将使用Property和Value属性.使用时MultiDataTrigger(这是您需要的),您指定a Binding和a Value.所以,如果您只是将代码切换为使用a MultiDataTrigger,那么您将会很高兴:
<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>
Run Code Online (Sandbox Code Playgroud)