我遇到了这样一种情况:我可以通过使用MultiDataTrigger
或使用带有MultiBinding
的DataTrigger
轻松地实现相同的功能。有没有什么实质性的理由让我们选择其中一种方法呢?
使用MultiDataTrigger:
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=SomePath}" Value="SomeValue"/>
<Condition Binding="{Binding Path=SomeOtherPath, Converter={StaticResource SomeConverter}}" Value="SomeOtherValue"/>
</MultiDataTrigger.Conditions>
<MultiDataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource MyStoryboard}"/>
</MultiDataTrigger.EnterActions>
</MultiDataTrigger>
使用MultiBinding:
<DataTrigger Value="foo">
<DataTrigger.Binding>
<MultiBinding Converter="{StaticResource fooConv}"/>
<Binding Path=SomePath/>
<Binding Path=SomeOtherPath/>
</MultiBinding>
</DataTrigger.Binding>
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource MyStoryboard}"/>
</DataTrigger.EnterActions>
</DataTrigger>
发布于 2014-01-08 18:49:00
除了极少数情况(使用StringFormat
)之外,Multibinding
都需要一个转换器。
MultiTrigger
只需要一个转换器就可以将绑定结果转换为boolean
%s。
https://stackoverflow.com/questions/20993293
复制相似问题