6

WPF で VisualStates を列挙値にバインドする簡単な方法はありますか? DataStateBehavior のようなものですが、Enum の場合は?

4

4 に答える 4

3

可能な列挙値ごとに DataTrigger を使用し、各トリガーが異なる状態で GoToStateAction を呼び出すことにより、純粋な xaml でそれを行うことができます。以下の例を参照してください。詳細については 、ViewModel を介して Visual State の変更を駆動する Enumを参照してください。

    <i:Interaction.Triggers>
        <ei:DataTrigger Binding="{Binding ConfirmedAnswerStatus}" Value="Unanswered">
            <ei:GoToStateAction StateName="UnansweredState" UseTransitions="False" />
        </ei:DataTrigger>
        <ei:DataTrigger Binding="{Binding ConfirmedAnswerStatus}" Value="Correct">
            <ei:GoToStateAction StateName="CorrectlyAnsweredState" UseTransitions="True" />
        </ei:DataTrigger>
        <ei:DataTrigger Binding="{Binding ConfirmedAnswerStatus}" Value="Incorrect">
            <ei:GoToStateAction StateName="IncorrectlyAnsweredState" UseTransitions="True" />
        </ei:DataTrigger>
    </i:Interaction.Triggers>
于 2012-02-09T18:46:35.120 に答える
1

SLにはWPFに移植できるDataStateSwitchBehaviorがあります。WPF4用のDataStateSwitchBehaviorを持っている人はいますか?

構文は非常に単純です。

 <is:DataStateSwitchBehavior Binding="{Binding Orientation}">
     <is:DataStateSwitchCase Value="Left" State="LeftState"/>
     <is:DataStateSwitchCase Value="Right" State="RightState"/>
     <is:DataStateSwitchCase Value="Down" State="DownState"/>
     <is:DataStateSwitchCase Value="Up" State="UpState"/>
 <is:DataStateSwitchCase/>
于 2011-03-25T16:49:02.957 に答える