MVVM 灯光视图不刷新绑定属性



I use MVVM Light. 我的模型继承自 MVVM Light 的 ObservableObject。 模型具有属性 X

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

在我的视图模型中,我有一个属性 X

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

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

(DataContext 设置为 ViewModel(

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

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

(如果我在视图模型中创建一个返回模型的属性,我可以将 direclty 绑定到我的视图中的 Model.X。但我希望我的视图绑定到视图模型,而不是直接绑定到模型(

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

此外,如果您的模型类已经实现了 INotifyPropertyChanged,则无需在 ViewModel 类中复制X属性。

只需将myModel成员变成公共财产

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

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

最新更新