WPF DataBinding: Использование SetCurrentValue в свойстве CLR? - PullRequest
0 голосов
/ 04 июня 2018

У меня есть пользовательский 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, который можно использовать для условного связывания двух привязок данных: значение «драйвер» перенаправляется на «зависимое» значение, только если логическое значениесвойство это правда.Это означает, что «зависимое» значение «только для записи» с точки зрения этого компонента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...