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