powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Inherits свойства и Binding
1 сообщений из 1, страница 1 из 1
Inherits свойства и Binding
    #38880847
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть наследуемое свойство, для примера: TextElement.FontSize (оно еще и Attached).

На одном из уровней визуального дерева происходит связывание этого прикрепляемого свойства с обычным свойством double? Size модели представления. (обращаю ваше внимание, что тип Nullable)
Чего бы мне хотелось:

при связывании, если значение свойства источника равно Null, то свойство приёмник должно быть сброшено в первоначальное состояние, где источником выступает Inherits свойство родителя.

Сперва я подумал, что всё просто, у Binding'а есть свойство TargetNullValue которому я присвоил
{x:Static DependencyProperty.UnsetValue}.
Код: sql
1.
TextBlock.FontSize="{Binding FontSize, TargetNullValue={x:Static DependencyProperty.UnsetValue}}"


и нифига не сработало, Binding просто выдает ошибку, о невозможности приведения типа, так как FontSize свойство типа double. А это вообще хрен пойми чего.

тогда я решил делать через IValueConverter, накидал конвертер, который бы проверял значение источника на Null и возвращал бы при этом {x:Static DependencyProperty.UnsetValue}. Но, всё равно план не сработал. При этом ошибок связывания вообще не возникает, значение берется хрен пойми какое, судя по всему значение по умолчанию, для данного свойства.

Окей гугл, используем триггеры... Но там началась жопа на этапе Setter'а, элемент Сеттера сразу сообщал об ошибке, жалуясь на то, что тип свойства double, а в Value мы передаем DependencyProperty.UnsetValue.

Единственное решение, которое я нашел, это AttachedProperty в котором при изменении свойства, мы изменяем свойство FontSize и если значение изменилось на Null, то мы сбрасываем значение присвоением ему DependencyProperty.UnsetValue (ну или ClearValue).

Есть ли какие то более вменяемые и удобные способы очистить значение приемника, если значение источник равно null?
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Inherits свойства и Binding
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]