0

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

4

0 回答 0