INotifyPropertyChanged говорит сам за себя, и я думаю, что ясно понимаю, когда его поднимать (т. е. когда я закончил обновлять значения).
Если я реализую INotifyPropertyChanging, я стремлюсь вызвать событие, как только я ввожу установщик или другой метод, который изменяет состояние объектов, а затем продолжает любые защитные меры и проверки, которые могут возникнуть.
Поэтому я рассматриваю это событие как уведомление о том, что свойство может измениться, но еще не было изменено, и на самом деле может не завершить успешное изменение.
Если потребители объекта используют это свойство (например, скажем, LINQ to SQL, использующее событие для отслеживания изменений), должен ли я откладывать и поднимать событие только после того, как я подтвержу, что значения, которые мне были даны, хороши и состояние объекта допустимо для изменения?
Каков контракт на это событие и какие побочные эффекты будут у подписчиков?