36

MultiDataTriggerを使用するか、または とを併用することで、同じ機能を簡単に実現できる状況に遭遇しDataTriggerましたMultiBinding。あるアプローチを他のアプローチよりも優先する実質的な理由はありますか?

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>

マルチバインディングの場合:

<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>
4

2 に答える 2

16

Multibindingごくまれな状況を除いて、コンバーターが必要です ( を使用StringFormat)。

MultiTriggerbooleanバインディング結果をsに変換するためのコンバーターのみが必要です。

于 2014-01-08T10:49:00.077 に答える