XAML 转到由绑定定义的视觉状态



我对 XAML 或表达式混合还没有太多经验。 我正在尝试使我的 silverlight 应用程序的初始可视化状态由字符串绑定定义。

到目前为止,我只是为每个可能的视觉状态创建一个手动触发器:

<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 中的什么位置? 同一个地方?

GoToStateAction 行为上的 StateName 属性是一个依赖项属性,因此看起来您应该能够绑定到它。 只需将 DataTrigger 替换为 PropertyChangedTrigger。 似乎您应该能够执行以下操作:

<i:Interaction.Triggers>
    <ei:PropertyChangedTrigger Binding="{Binding VisualState}">
        <ei:GoToStateAction StateName="{Binding VisualState}"/>
    </ei:PropertyChangedTrigger >
</i:Interaction.Triggers>

最新更新