我的模型中有一个具有吸气剂的属性
public boolean Status {
get {
return 1==2;
}
}
和标签
<Label Content="{Binding Path=Status, Mode=OneWay}" />
我想监视状态。现在,当状态值更改时,UI不会使用该值更新。
答案 0 :(得分:0)
您将必须做两件事:
在包含Status属性的类中实现INotifyPropertyChanged接口。
调用PropertyChanged处理程序,然后在Status属性的setter中调用该方法,该方法将作为INotifyPropertyChanged的一部分实现-如果您不知道它的名称,请对其进行Google搜索,然后您将获得代码-它基本上通知UI属性已更改。
如果仅获取Status属性,则必须在知道状态已更新后调用PropertyChanged方法。
答案 1 :(得分:0)
假设该视图模型已实现INotifyPropertyChanged
,则要让UI重新读取属性值,必须引发PropertyChanged
事件。这是只获取属性还是获取/设置一个属性都没关系。
由于它是只读的,因此您需要在更改某些内容后调用OnPropertyChanged
,这会影响getter表达式的结果:
private int a;
private int b;
public bool Status => a == b;
private void DoSomething()
{
a = ...;
b = ...;
// ...
OnPropertyChanged(nameof(Status));
}