Сторінка 3 з 10
Робота з успадкованим DataContext
Якщо не вказано інакше, все прив'язки неявно прив'язують до властивості DataContext елемента. DataContext елемента посилається на його, так би мовити, джерело даних. Щодо того, як працює DataContext, необхідно знати дещо особливе. Розуміння цього неявного аспекту DataContext набагато спрощує розробку складних інтерфейсів користувача, прив'язаних до даних.
Для посилання на об'єкт джерела даних не обов'язково встановлювати властивість DataContext. Якщо властивості DataContext елемента-предка в дереві елементів (технічно кажучи, логічному дереві) дано значення для його DataContext, то значення автоматично буде успадковано кожним похідним елементом в інтерфейсі користувача. Іншими словами, якщо DataContext встановлений так, щоб посилатися на об'єкт Foo, то, за замовчуванням, DataContext кожного елемента у вікні буде посилатися на той самий об'єкт Foo. Будь-якому елементу у вікні можна легко дати своє значення DataContext, що змусить усі елементи, похідні від цього елемента, успадкувати нове значення DataContext. Це нагадує зовнішнє властивість в Windows Forms.
У попередньому розділі я розглянув використання DataTemplates для створення візуалізацій об'єктів даних. Властивості елементів, створених шаблоном намалюйте. 2, прив'язані до властивостей об'єкта FullName. Ці елементи неявно прив'язують до їх властивості DataContext. Властивість DataContext елементів, створених ншаблоном DataTemplate, посилається на об'єкт даних, для якого використовується шаблон, такий як об'єкт FullName.
У спадкуванні значення властивістю DataContext немає ніякого чаклунства. Це просто використання вбудованої в WPF підтримки успадкованих властивостей залежностей. Будь-яке властивість залежності може бути успадкованим властивістю, якщо для нього просто вказано прапорець в метаданих, наданих при реєстрації цієї властивості в системі властивостей залежностей WPF.
Іншими прикладом успадкованого властивості залежності є наявне у всіх елементів властивість FontSize. Якщо встановити властивість залежно FontSize на вікні, то за замовчуванням всі елементи в цьому вікні будуть зображуватися текстом у вказаному ним розмірі шрифту. Інфраструктура, що використовується для поширення значення FontSize вниз по дереву елементів, поширює і DataContext.
Тут термін «спадкування» використовується в значенні, відмінному від його об'єктно-орієнтованого сенсу, де підклас успадковує члени батьківського класу. Спадкування значень властивостей відноситься тільки до поширення значень вниз по дереву елементів під час виконання. Природно, клас може успадкувати властивість залежності для підтримки спадкування значень в об'єктно-орієнтованому сенсі.
• Завантажити вихідний код - 332 Кб Введення Ієрархічні шаблони даних є потужним способом організації і прив'язки даних, наявних в основі уявлення Windows (WPF) і Silverlight. Прочитавши цю статтю і приклад коду, ви отримаєте глибокі знання про те, як працюють ієрархічні шаб.
• Завантажити оригінали - 4.96 КБ Навіщо тоді потрібен XAML? Слід позбутися його. Створення нового проекту Silverlight Почніть з створення нового проекту Silverlight звичним чином. Натисніть на Файл-> Новий-> Проект. в меню, або натисніть Ctrl + Shift + N. Виберіть програму Silverligh.
• Завантажити оригінали - 595 KB Вимоги Буде з нуля створено дуже просте додаток веб-чату за допомогою Silverlight 2 з спортивного інтересу. Додаток чату буде містити два користувальницьких керуючих елемента XAML: керуючий елемент входу в чат і керуючий елемент розділу чату.