我希望当属性更改时,分析属性的值并设置文本块的文本。我有这个:
使用多重绑定:
<TextBlock>
<TextBlock.Text>
<MultiBinding Converter="{StaticResource MyMultivalueConverter}">
<Binding />
<Binding Path="AnotherProperty"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
多数据触发:
<TextBlock HorizontalAlignment="Center" Margin="0,20,0,0" FontSize="28">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=." Value="0" />
<Condition Binding="{Binding Path=AnotherProperty}" Value="True" />
</MultiDataTrigger.Conditions>
<Setter Property="Text" Value="Mytext" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
我看到的主要区别是在多重绑定中我需要一个多值转换器。但是,对于多数据触发器,我需要设置所有组合以根据属性的值设置我想要显示的不同文本,所以这是一项非常艰苦的工作。
所以我怀疑哪个是多数据触发器的优势,因为我需要设置许多组合,并且使用多绑定我创建了一个转换器,它还允许复杂的比较,如大于,小于......使用多数据触发器只有一个值对于每个组合。
总而言之,什么时候使用多绑定,什么时候多数据触发?多绑定的优势和多数据触发器的优势是什么?
非常感谢。