Binding в WPF (продолжение)
От: Fortnum  
Дата: 29.10.10 22:21
Оценка:
Разбирался с Coercion в биндинге WPF, и наткнулся на старую тему
Автор:
Дата: 21.07.09
. Попытался разобраться и ответить на вопрос "баг или фича?" Оказывается, фича, обеспечивающая отсутствие зацикливаний при смене значений зависимых свойств (dependency properties).

Да вот, собственно, я даже нарисовал (см. ниже). Еще подумал, что было бы, если бы CLR-property у ТС той темы получал бы уже Coerced Value. Был бы "плохой дизайн" Тоже его нарисовал. Т.е. устойчивость биндинга обеспечивается тем, что у любого DependecnyProperty может быть только один источник. А т.к. этот источник может быть другим DependencyProperty со своим CoerceValueCallback'ом, то возникает проблема зацикливания биндинга. Вот и объяснение.

Прикрепил еще проектик по теме. Только я убрал DataContext'ный объект с CLR-property — ни при чем он здесь Заменил TextBox'ами. В общем, в проекте этот эффект сразу виден, кому надо скачает и посмотрит, здесь код приводить не буду.

Вот картинка:

http://i55.tinypic.com/2j67q4i.gif
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.