|
Inherits свойства и Binding
|
|||
---|---|---|---|
#18+
Есть наследуемое свойство, для примера: TextElement.FontSize (оно еще и Attached). На одном из уровней визуального дерева происходит связывание этого прикрепляемого свойства с обычным свойством double? Size модели представления. (обращаю ваше внимание, что тип Nullable) Чего бы мне хотелось: при связывании, если значение свойства источника равно Null, то свойство приёмник должно быть сброшено в первоначальное состояние, где источником выступает Inherits свойство родителя. Сперва я подумал, что всё просто, у Binding'а есть свойство TargetNullValue которому я присвоил {x:Static DependencyProperty.UnsetValue}. Код: sql 1.
и нифига не сработало, Binding просто выдает ошибку, о невозможности приведения типа, так как FontSize свойство типа double. А это вообще хрен пойми чего. тогда я решил делать через IValueConverter, накидал конвертер, который бы проверял значение источника на Null и возвращал бы при этом {x:Static DependencyProperty.UnsetValue}. Но, всё равно план не сработал. При этом ошибок связывания вообще не возникает, значение берется хрен пойми какое, судя по всему значение по умолчанию, для данного свойства. Окей гугл, используем триггеры... Но там началась жопа на этапе Setter'а, элемент Сеттера сразу сообщал об ошибке, жалуясь на то, что тип свойства double, а в Value мы передаем DependencyProperty.UnsetValue. Единственное решение, которое я нашел, это AttachedProperty в котором при изменении свойства, мы изменяем свойство FontSize и если значение изменилось на Null, то мы сбрасываем значение присвоением ему DependencyProperty.UnsetValue (ну или ClearValue). Есть ли какие то более вменяемые и удобные способы очистить значение приемника, если значение источник равно null? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2015, 16:17 |
|
|
start [/forum/search_topic.php?author=T_n&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
others: | 1137ms |
total: | 1284ms |
0 / 0 |