2

XAML や式のブレンドについては、まだあまり経験がありません。Silverlight アプリケーションの初期の visualState を文字列バインディングで定義しようとしています。

これまでのところ、考えられる視覚状態ごとに手動トリ​​ガーを作成しているだけです。

<i:Interaction.Triggers>
    <ei:DataTrigger Binding="{Binding VisualState}" Value="DevOffline">
        <ei:GoToStateAction StateName="DevOffline"/>
    </ei:DataTrigger>
    <ei:DataTrigger Binding="{Binding VisualState}" Value="Public">
        <ei:GoToStateAction StateName="Public"/>
    </ei:DataTrigger>
    ....
</i:Interaction.Triggers>

それは機能しますが、合計で 9 つの状態があるため、次のような普遍的なものが必要です。

<goToStateAction StateName="{Binding VisualState}" />

これを行うことは可能ですか?その場合、XAML のどこに配置すればよいですか? 同じ場所?

4

1 に答える 1

3

GoToStateAction ビヘイビアーの StateName プロパティは依存関係プロパティであるため、バインドできるはずです。DataTrigger を PropertyChangedTrigger に置き換えるだけです。次のことができるはずです。

<i:Interaction.Triggers>
    <ei:PropertyChangedTrigger Binding="{Binding VisualState}">
        <ei:GoToStateAction StateName="{Binding VisualState}"/>
    </ei:PropertyChangedTrigger >
</i:Interaction.Triggers>
于 2012-06-07T15:52:18.353 に答える