当前位置:  开发笔记 > 数据库 > 正文

INotifyPropertyChanging和验证:我什么时候提出PropertyChanging?

如何解决《INotifyPropertyChanging和验证:我什么时候提出PropertyChanging?》经验,为你挑选了1个好方法。

INotifyPropertyChanged是相当自我解释的,我想我很清楚何时提高那个(即我完成更新值时).
如果我实现了INotifyPropertyChanging,我会在进入setter或其他更改对象状态的方法后立即引发事件,然后继续执行可能发生的任何保护和验证.

因此,我将此事件视为通知,即该属性可能会更改但尚未更改,并且实际上可能无法成功完成更改.

如果对象的使用者正在使用这个属性(就像让我们说LINQ to SQL使用事件进行更改跟踪)我是否应该暂停并且只有在我验证了我给出的值是好的并且对象的状态对更改有效吗?

这次活动的合同是什么,订户会有什么副作用?



1> Mark Cidade..:

如果您的对象被赋予对该属性无效的值并且您抛出异常,那么您不应该引发该PropertyChanging事件.只有当您确定值发生变化时,才应该举起活动.典型的使用场景是更改简单字段:

public T Foo
 { get
    { return m_Foo;
    }
   set
    { if (m_Foo == value) return; //no need for change (or notification)
      OnPropertyChanging("Foo");
      m_Foo = value;
      OnPropertyChanged("Foo");
    }
 }

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有