Здравствуйте, Cynic, Вы писали:
C>Получил вывод:
C>Deafult value : 10
C>ValidateValueCallback
C>CoerceValueCallback
C>PropertyChangedCallback
C>New value1 : 100
C>ValidateValueCallback
C>CoerceValueCallback
C>PropertyChangedCallback
C>New value2 : 1000
C>Отсюда два вопроса:
C>1) Почему между значениями 10 и 100 ValidateValueCallback вылетает два раза?
C>2) Почему между значениями 100 и 1000 порядок другой?
По выводу такого не скажешь
C>При этом в книге "Pro WPF 4.5 in С#" Matthew MacDonald'а утверждается, что порядок должен быть таким:
Не знаю, что в книге, но тут довольно логично. Validate — это проверка допустимости значения для свойства, а Coerce — корректировка в рамках допустимого. Результат Coerce может быть пересмотрен без присваивания, поэтому оригинальное значение, до Coerce, должно быть валидным.