在通知视图fx时,我不确定为什么我应该使用RaisePropertyChanging:
private LoggingLvl _myLoggingLvl;
public LoggingLvl MyLoggingLvl
{
get { return _myLoggingLvl; }
set
{
RaisePropertyChanging("MyLoggingLvl");
_myLoggingLvl = value;
RaisePropertyChanged("MyLoggingLvl");
}
}
Run Code Online (Sandbox Code Playgroud)
为什么建议使用RaisePropertyChanging?
在应用更改之前,使用INotifyPropertyChanging将允许消费代码有机会消耗属性的先前值.这通常不会有用,但有些情况可能是:如果您想象一个表示"活动对象"的属性,则此事件将允许您触发在取消激活对象时将触发的代码.
作为一个人为的例子,考虑一个UI,其中需要以特定方式显示字段值的变化:旧值应该从屏幕"浮动",留下新值.如果实现了模型类INotifyPropertyChanging,则viewmodel类可以附加到此事件,以便缓存旧值以在float动画中使用.这允许模型类表示当前状态,而viewmodel可以维护驱动UI所需的所有值.