При побудові вікна зазвичай найбільш ефективно оголошувати вираз прив'язки в розмітці XAML за допомогою розширення розмітки Binding. Проте, допускається також створювати прив'язку і в коді.
Ось як можна створити прив'язку для елемента TextBlock, показаного в прикладі з попередньої статті:
Для видалення прив'язки в коді передбачені два статичних методу класу BindingOperations. Метод ClearBinding () приймає посилання на властивість залежності, яке має прив'язку, що підлягає видаленню, а метод ClearAllBindings () видаляє всі прив'язки даних елемента:
І ClearBinding (), і ClearAllBindings () використовують метод ClearValue (), який кожен елемент успадковує від базового класу DependencyObject. Метод ClearValue () просто видаляє локальне значення властивості (яким в даному випадку є вираз прив'язки).
Прив'язка на основі розмітки застосовується набагато частіше, ніж програмна прив'язка, тому що вона ясніше і вимагає менше роботи. Однак код може застосовуватися для створення прив'язки в деяких спеціалізованих сценаріях:
Створення динамічних прив'язок
Якщо необхідно точно керувати прив'язку на основі іншої інформації часу виконання або створювати різні прив'язки в залежності від обставин, має сенс робити це в коді. (В якості альтернативи можна було б визначити всі необхідні прив'язки в колекції Resources вікна і просто додати код, який викликає SetBinding () з відповідним об'єктом прив'язки.)
Щоб видалити прив'язку і отримати можливість установки властивості звичайним чином, знадобиться допомога методу ClearBinding () або ClearAllBindings (). Недостатньо просто присвоїти нове значення властивості. У разі використання двобічної прив'язки встановлене значення пошириться на прив'язаний об'єкт, і обидва властивості залишаться синхронізованими.
За допомогою методів ClearBinding () і ClearAllBindings () можна видалити будь-яку прив'язку. Не має значення, застосовувалася прив'язка програмно або в коді XAML.
Створення спеціальних елементів управління
Щоб полегшити для інших модифікацію візуального представлення спеціального елемента управління, який розробляється, певні деталі (такі як обробники подій і вираження прив'язки даних) знадобиться перенести в код розмітки.