Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, notacat, Вы писали:
А>>>Суть проблемы: пишется составной контрол — Slider + TextBox, оба элемента привязаны к двухсторонней привязкой к DependencyProperty "Value" этого контрола. Т.е. дергаем слайдер — меняется текст, вводим текст — перемещается слайдер. Соответственно к Value извне также привязывается свойство объекта, над которым мы все эти действия и производим. Внутри самого контрола значение корректируется через CoerceValueCallBack (выход за границы, количество знаков после запятой и т.д.), но вот наружу по биндингу прилетает значение не скорректированное. Получается что биндинг происходит раньше установки самого свойства и, соответственно, до вызова CoerceValueCallback! Как с этим бороться?
А>MSDN я читал, решения и даже намека на причины такой проблемы там нет. Скорее всего это не проблема DependencyProperty, а проблема биндинга. Получается, что биндинг либо происходит в обход промежуточных свойств (т.е. сразу от конечного источника к конечной цели), либо передает базовое значение. В самом источнике проверять значения очень не хотелось бы, тем более таким изощренным способом, тем более что он является оберткой над нативным кодом и наследоваться от DependencyObject возможности нет.
А что именно не получается? Что имеется ввиду под "наружу по биндингу прилетает значение не скорректированное"? Наружу — это куда? Возможно стоит привести примеры кода.