Pea*_*nut 5 viewstate silverlight wpf
一个简单的问题:是否可以从XAML激活视图状态?我只能使用VisualStateManager.GotoState()方法从CS激活一个.如果它很容易实现,这将解决我的一些MVVM问题.
谢谢
如果您熟悉Blend行为,触发器和操作,则会有一个GoToStateAction,它是Microsoft.Expression.Interactivity.Core命名空间的一部分.您必须引用属于Blend SDK的交互式程序集.
一旦你设置了引用,它就像指定GoToStateAction以对某种触发器做出反应一样简单......所有这些都在XAML中.下面是一个使用EventTrigger触发Loaded事件的动作的示例:
<UserControl x:Class="SilverlightApplication1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:ic="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions">
<Grid x:Name="LayoutRoot">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<ic:GoToStateAction StateName="MyVisualState"/>
</i:EventTrigger>
</i:Interaction.Triggers>
...
</Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)
有关特定GoToState操作的更多信息和教程,请点击此处.
编辑:此答案特定于Silverlight,不确定它是否在WPF中可用.