我还没有很多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中?同一个地方?
答案 0 :(得分:3)
GoToStateAction行为的StateName属性是依赖属性,因此您似乎应该能够绑定它。只需用PropertyChangedTrigger替换DataTrigger即可。您似乎应该能够执行以下操作:
<i:Interaction.Triggers>
<ei:PropertyChangedTrigger Binding="{Binding VisualState}">
<ei:GoToStateAction StateName="{Binding VisualState}"/>
</ei:PropertyChangedTrigger >
</i:Interaction.Triggers>