Wpf, створення прив'язки в коді

При побудові вікна зазвичай найбільш ефективно оголошувати вираз прив'язки в розмітці XAML за допомогою розширення розмітки Binding. Проте, допускається також створювати прив'язку і в коді.

Ось як можна створити прив'язку для елемента TextBlock, показаного в прикладі з попередньої статті:

Для видалення прив'язки в коді передбачені два статичних методу класу BindingOperations. Метод ClearBinding () приймає посилання на властивість залежності, яке має прив'язку, що підлягає видаленню, а метод ClearAllBindings () видаляє всі прив'язки даних елемента:

І ClearBinding (), і ClearAllBindings () використовують метод ClearValue (), який кожен елемент успадковує від базового класу DependencyObject. Метод ClearValue () просто видаляє локальне значення властивості (яким в даному випадку є вираз прив'язки).

Прив'язка на основі розмітки застосовується набагато частіше, ніж програмна прив'язка, тому що вона ясніше і вимагає менше роботи. Однак код може застосовуватися для створення прив'язки в деяких спеціалізованих сценаріях:

Створення динамічних прив'язок

Якщо необхідно точно керувати прив'язку на основі іншої інформації часу виконання або створювати різні прив'язки в залежності від обставин, має сенс робити це в коді. (В якості альтернативи можна було б визначити всі необхідні прив'язки в колекції Resources вікна і просто додати код, який викликає SetBinding () з відповідним об'єктом прив'язки.)

Щоб видалити прив'язку і отримати можливість установки властивості звичайним чином, знадобиться допомога методу ClearBinding () або ClearAllBindings (). Недостатньо просто присвоїти нове значення властивості. У разі використання двобічної прив'язки встановлене значення пошириться на прив'язаний об'єкт, і обидва властивості залишаться синхронізованими.

За допомогою методів ClearBinding () і ClearAllBindings () можна видалити будь-яку прив'язку. Не має значення, застосовувалася прив'язка програмно або в коді XAML.

Створення спеціальних елементів управління

Щоб полегшити для інших модифікацію візуального представлення спеціального елемента управління, який розробляється, певні деталі (такі як обробники подій і вираження прив'язки даних) знадобиться перенести в код розмітки.

Схожі статті