我对 MVVM 和 WPF 还很陌生,最近开始从 WinForms 移植一个应用程序。我正在尝试从 ViewModel 更改视觉状态,但无法弄清楚。
我已经尝试了所有以前发布的解决方案,但似乎没有任何效果。这就是我所拥有的:
<UserControl x:Class="WPFApp.View.AddItem"
...
DataContext="{Binding}" helper:StateManager.VisualStateProperty="{Binding Path=VisualStateName}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="OverlayStates">
<VisualStateGroup.Transitions>
...
在 ViewModel 中:
private string visualStateName;
public string VisualStateName
{
get
{
return visualStateName;
}
set
{
visualStateName = value;
OnPropertyChanged("VisualStateName");
}
}
当我输出 VisualStateName 的值时,它为空,如果我设置它,它不会改变视图的状态。我不知道我做错了什么,我发现了一些关于其他人错误的注释,但似乎没有犯过任何错误。谁能看到我做错了什么?
我正在使用这里找到的 StateManager:http: //tdanemar.wordpress.com/2009/11/15/using-the-visualstatemanager-with-the-model-view-viewmodel-pattern-in-wpf-or-silverlight/