У меня есть пользовательский WPF DependencyObject
, которому принадлежит свойство DependentValue . DepedentValue будет только выводить свое значение, объект никогда не читает его.Идея состоит в том, что свойство DependentValue в XAML связывается либо как TwoWay , либо OneWayToSource и обновляется объектом.Для ошибок при назначении DependentValue до завершения привязки я хотел бы использовать SetCurrentValue
для обновления свойства.
Обычное свойство CLR будет выглядеть так:
public object DependentValue
{
get { return GetValue(DependentValueProperty); }
set { SetValue(DependentValueProperty, value); }
}
Из-за проблемы с SetValue этот установщик никогда не должен использоваться изнутри объекта.Поэтому я хотел бы реализовать следующее свойство CLR:
public object DependentValue
{
set { SetCurrentValue(DependentValueProperty, value); }
}
Это работает, как и ожидалось, но соглашение, по-видимому, подразумевает, что только свойство SetValue должно когда-либо использоваться внутри свойства CLR.Каковы проблемы с этим подходом?
Для контекста: я построил компонент WPF, который можно использовать для условного связывания двух привязок данных: значение «драйвер» перенаправляется на «зависимое» значение, только если логическое значениесвойство это правда.Это означает, что «зависимое» значение «только для записи» с точки зрения этого компонента.