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}
绑定到它。