是否可以不使用INotifyPropertyChanged来检测字段或属性的更改?
例如,我的目的是连接到某个字段并检测其值是否已更改,即使它是int字段也是如此。
答案 0 :(得分:3)
写一个自己写的整数以外的其他整数都没有效果。 INotifyPropertyChanged
无法解决。
您可以使用引发事件的属性来包装字段。 您可以具有一个管理器类,该管理器类公开一个属性,即使该字段不属于该类,也可以通过该类来管理该字段。 您可以使用线程轮询该值,如果更改则引发该事件。
在大多数情况下,理智的方法是尽可能接近mvvm蓝图,因此没有人会对此感到惊讶。
答案 1 :(得分:2)
您可以决定在属性更改时引发自定义事件。您的上层唯一要做的就是订阅SomeProperty
事件。您可以将EventHandler
委托替换为适合您的需求。
public event EventHandler SomePropertychanged;
private int _SomeProperty;
public int SomeProperty
{
get
{
return this._SomeProperty;
}
set
{
if (this._SomeProperty != value)
SomePropertychanged?.Invoke(this, new EventArgs());
}
}