MVVM Light View 不刷新绑定 属性

MVVM Light View not refreshing binding property

我使用 MVVM Light。 我的模型继承自 MVVM Light 的 ObservableObject。 该模型有 属性 X

    public float X
    {
        get
        {
            return x_;
        }
        set
        {
            Set<float>(() => this.X, ref x_, value);
        }
    }

在我的 ViewModel 中我有一个 属性 X

        public float X
        {
            get
            {
                myModel.X;
            }
        }

我的视图有一个标签,其中内容绑定到 ViewModel 属性 X。

(DataContext 设置为 ViewModel)

当模型中 属性 X 的值从代码更新时,视图中的标签永远不会更新。

提问确保视图正确反映更新值的推荐方法是什么?

(如果我在我的 ViewModel 中创建一个 属性 模型 returns,我可以直接绑定到我的视图中的 Model.X。但我希望我的视图绑定到ViewModel 不直接下到 Model)

myModel.X 触发 PropertyChanged 事件时,不会自动触发 ViewModel 的 PropertyChanged。

此外,如果您的模型 class 已经实现了 INotifyPropertyChanged,则无需在 ViewModel class.

中复制 X 属性

只需将 myModel 成员变成 public 属性

public class ViewModel
{
     public Model MyModel { get; set; } 
}

并通过{Binding MyModel.X}绑定到它。