Привязка элементов управления 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 (модель данных с использованием сущностей)

Да

Да

Служба

Да

Нет

Объект.

Да

Нет

Dd264923.collapse_all(ru-ru,VS.110).gifНаборы данных

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

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

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

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

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

Dd264923.collapse_all(ru-ru,VS.110).gifМодели EDM

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

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

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

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

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

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

Dd264923.collapse_all(ru-ru,VS.110).gifСлужбы

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

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

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

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

Dd264923.collapse_all(ru-ru,VS.110).gifОбъекты

При перетаскивании объекта или свойства из окна Источники данных в конструктор 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

Ссылки

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

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

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