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 回答