Привязка элементов управления WPF к данным в Visual Studio

Для пользователей приложения данные можно отображать путем привязки данных к элементам управления WPF. Для создания таких связанных с данными элементов управления можно перетаскивать элементы из окна Источники данных на сред. Конструктор WPF в Visual Studio. В этом разделе описываются некоторые из наиболее распространенных задач, инструментов и классов, которые можно использовать для создания связанных с данными приложений WPF.

Общие сведения о создании элементов управления с привязкой к данным в Visual Studio см. в разделе Привязка элементов управления к данным в Visual Studio. Дополнительные сведения о привязке данных WPF см. в разделе Общие сведения о связывании данных.

Задачи, решаемые в процессе привязки элементов управления WPF к данным

В следующей таблице перечислены задачи, которые могут быть решены путем перетаскивания элементов из окна Источники данных в сред. Конструктор WPF.

Задача

Дополнительные сведения

Создание новых элементов управления, связанных с данными

Привязка существующих элементов управления к данным

Практическое руководство. Привязка элементов управления WPF к данным в Visual Studio

Создание элементов управления, отображающих связанные данные в иерархическом отношении: когда пользователь выбирает родительскую запись данных в одном элементе управления, другой элемент управления отображает связанные дочерние данные для выбранной записи

Практическое руководство. Отображение связанных данных в приложениях WPF

Создание таблицы подстановки, которая отображает информацию из одной таблицы на основе значения в поле внешнего ключа в другой таблице

Практическое руководство. Создание таблиц подстановки в приложениях WPF

Привязка элемента управления к изображению в базе данных

Практическое руководство. Привязка элементов управления к рисункам из базы данных

Допустимые целевые объекты перетаскивания

Элементы в окне Источники данных можно перетаскивать только на допустимые целевые объекты перетаскивания в сред. Конструктор WPF. Имеется две основных разновидности допустимых целевых объектов перетаскивания: контейнеры и элементы управления. Контейнер — это элемент пользовательского интерфейса, который обычно содержит элементы управления. Например, сетка является контейнером, равно как и окно.

Созданный язык XAML и код

При перетаскивании элемента из окна Источники данных в сред. Конструктор WPF Visual Studio создает XAML, который определяет новый связанный с данными элемент управления (либо создает привязку существующего элемента управления к источнику данных). Для некоторых источников данных Visual Studio также создает код в файле кода программной части, который наполняет данными источник данных.

В следующей таблице отображены XAML и код, создаваемые Visual Studio для каждого типа источников данных в окне Источники данных.

Источник данных

Создание языка XAML, который привязывает элемент управления к источнику данных

Создание кода, который заполняет данными источник данных

Набор данных

Да

Да

EDM (модель)

Да

Да

Служба

Да

Нет

Объект

Да

Нет

Наборы данных

При перетаскивании таблицы или столбца из окна Источники данных в конструктор Visual Studio создает XAML, который выполняет следующие действия.

  • Добавление набора данных и нового CollectionViewSource в ресурсы контейнера, на который пользователь перетащил элемент. CollectionViewSource — это объект, который можно использовать для навигации и отображения данных в наборе данных.

  • Создание привязки данных для элемента управления. Если перетащить элемент на существующий элемент управления в конструкторе, язык XAML привязывает элемент управления к этому элементу. Если перетащить элемент на контейнер, язык XAML создает элемент управления, который был выбран для перетаскиваемого элемента, и привязывает элемент управления к этому элементу. Элемент управления создается внутри нового Grid.

Кроме того, Visual Studio вносит следующие изменения в файл кода программной части:

  • Создает обработчик событий Loaded для элемента UI, который содержит элемент управления. Обработчик событий наполняет таблицу данными, извлекает CollectionViewSource из ресурсов контейнера, а затем делает первый элемент данных текущим элементом. Если обработчик событий Loaded уже существует, Visual Studio добавляет этот код в существующий обработчик событий.

Модели EDM

При перетаскивании сущности или свойства сущности из окна Источники данных в конструктор Visual Studio создает XAML, который выполняет следующие действия:

  • Добавление нового CollectionViewSource в ресурсы контейнера, на который пользователь перетащил элемент. CollectionViewSource — это объект, который можно использовать для навигации и отображения данных в сущности.

  • Создание привязки данных для элемента управления. Если перетащить элемент на существующий элемент управления в конструкторе, XAML привязывает элемент управления к этому элементу. Если перетащить элемент на контейнер, XAML создает элемент управления, который был выбран для перетаскиваемого элемента, и привязывает элемент управления к этому элементу. Элемент управления создается внутри нового Grid.

Кроме того, Visual Studio вносит следующие изменения в файл кода программной части:

  • Добавляет новый метод, который возвращает запрос для сущности, которую пользователь перетащил в конструктор (или сущности, содержащей свойство, которое пользователь перетащил в конструктор). Имя нового метода — GetEntityNameQuery, где EntityName — имя сущности.

  • Создает обработчик событий Loaded для элемента UI, который содержит элемент управления. Обработчик событий вызывает метод GetEntityNameQuery для наполнения сущности данными, извлекает CollectionViewSource из ресурсов контейнера, а затем делает первый элемент данных текущим элементом. Если обработчик событий Loaded уже существует, Visual Studio добавляет этот код в существующий обработчик событий.

Службы

При перетаскивании объекта или свойства службы из окна Источники данных в конструктор Visual Studio генерирует XAML, который создает связанный с данными элемент управления (либо создает привязку существующего элемента управления к этому объекту или свойству). Однако Visual Studio не создает код, который наполнил бы прокси-объект службы данными. Этот код придется написать самостоятельно. Пример, в котором показано, как это сделать, см. в разделе Пошаговое руководство. Привязка элементов управления WPF к службе данных WCF.

Visual Studio создает язык XAML, который выполняет следующие действия:

  • Добавление нового CollectionViewSource в ресурсы контейнера, на который пользователь перетащил элемент. CollectionViewSource — это объект, который можно использовать для навигации и отображения данных в объекте, возвращаемом службой.

  • Создание привязки данных для элемента управления. Если перетащить элемент на существующий элемент управления в конструкторе, XAML привязывает элемент управления к этому элементу. Если перетащить элемент на контейнер, XAML создает элемент управления, который был выбран для перетаскиваемого элемента, и привязывает элемент управления к этому элементу. Элемент управления создается внутри нового Grid.

Объекты

При перетаскивании объекта или свойства из окна Источники данных в конструктор Visual Studio генерирует XAML, который создает связанный с данными элемент управления (либо создает привязку существующего элемента управления к этому объекту или свойству). Однако Visual Studio не создает код для наполнения объекта данными. Этот код придется написать самостоятельно.

Примечание

Пользовательский класс должен быть открытым и должен содержать конструктор по умолчанию без параметров.Это не могут быть вложенные классы, которые записываются через точку.Дополнительные сведения см. в разделе Код XAML и пользовательские классы для WPF.

Visual Studio создает XAML, который выполняет следующие действия.

  • Добавление нового CollectionViewSource в ресурсы контейнера, на который пользователь перетащил элемент. CollectionViewSource — это объект, который можно использовать для навигации и отображения данных в объекте.

  • Создание привязки данных для элемента управления. Если перетащить элемент на существующий элемент управления в конструкторе, язык XAML привязывает элемент управления к этому элементу. Если перетащить элемент на контейнер, язык XAML создает элемент управления, который был выбран для перетаскиваемого элемента, и привязывает элемент управления к этому элементу. Элемент управления создается внутри нового Grid.

См. также

Задачи

Практическое руководство. Привязка элементов управления WPF к данным в Visual Studio

Практическое руководство. Создание таблиц подстановки в приложениях WPF

Практическое руководство. Отображение связанных данных в приложениях WPF

Пошаговое руководство. Привязка элементов управления WPF к модели EDM

Пошаговое руководство. Привязка элементов управления WPF к набору данных

Пошаговое руководство. Привязка элементов управления WPF к службе данных WCF

Пошаговое руководство. Отображение связанных данных в приложении WPF

Ссылки

Окно "Источники данных"

Основные понятия

Общие сведения об источниках данных