我对 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>