Перейти к содержанию

Привязка данных

После того как элемент управления TreeList/TreeView привязан к источнику данных, он создаёт узлы (объекты TreeListNode) для записей источника данных. Изначально узлы пусты. Вам необходимо указать свойства записей данных (поля источника данных), значения которых отображаются в узлах.

Чтобы отображать значения в узлах TreeList, создайте связанные или несвязанные колонки в коллекции TreeListControl.Columns. Включите опцию TreeListControl.AutoGenerateColumns, чтобы автоматически генерировать недостающие колонки для всех свойств/полей источника данных после привязки элемента управления. Дополнительную информацию смотрите в разделах Колонки и Несвязанные колонки.

Элемент управления TreeView — это однорядная (однопанельная) версия TreeList с одной колонкой. Используйте свойство TreeViewControl.DataFieldName, чтобы указать, какие значения отображаются в его узлах в режиме привязки. Этот член определяет имя свойства/поля в источнике данных, данные которого отображаются элементом управления.

Свойство ItemsSource позволяет привязать элемент управления TreeList/TreeView к источнику данных, который содержит информацию об отношениях "родитель-потомок" между записями. Элементы управления поддерживают два типа источников данных, которые отличаются способом кодирования информации об иерархии:

  • Self-Referential (плоский) источник данных.
  • Иерархический источник данных

Self-Referential (плоский) источник данных

Self-Referential источник данных — это плоская таблица, коллекция или список, в котором записи имеют два служебных свойства/поля, используемых для создания отношений "родитель-потомок" между записями:

  • Поле ключа (Key) — уникальный идентификатор записи.
  • Поле ключа родителя (Parent Key) — хранит значение поля Key родительской записи.

Как правило, и поле Key, и поле Parent Key имеют целочисленный тип данных. Родительские и дочерние объекты данных всегда относятся к одному и тому же типу данных.

Дополнительную информацию смотрите в следующих разделах:

Общий API

  • ItemsSource — источник данных элемента управления.
  • KeyFieldName — имя поля, хранящего уникальные идентификаторы записей (значения поля Key).
  • ParentFieldName — имя поля, хранящего идентификатор (значение поля Key) родителя записи.
  • RootValue — значение поля Parent Key для корневого узла.

API TreeList

  • Columns — коллекция связанных и несвязанных колонок TreeList.
  • AutoGenerateColumns — определяет, автоматически ли TreeList генерирует недостающие колонки для публичных свойств/полей, предоставляемых источником данных во время выполнения. Если коллекция Columns элемента управления уже содержит колонку, связанную с конкретным свойством/полем, дополнительная колонка, связанная с тем же свойством/полем, автоматически не создаётся.
  • AutoGenerateServiceColumns — определяет, автоматически ли TreeList создаёт колонки, связанные с полем Key и полем Parent Key. Это свойство действует, если включена опция AutoGenerateColumns.

API TreeView

  • DataFieldName — имя поля, данные которого отображаются в элементе управления.

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

В иерархическом источнике данных бизнес-объект (запись) имеет свойство, которое хранит коллекцию дочерних объектов данных. Родительские и дочерние объекты данных могут быть разных типов, но они должны иметь общий набор свойств, которые элементы управления TreeView/TreeList отображают в виде колонок.

При привязке к иерархическому источнику данных элементы управления TreeList и TreeView загружают узлы по требованию: дочерние узлы динамически загружаются при разворачивании родительского узла. Это накладывает ограничения на функциональность проверки узлов и фильтрации/поиска.

Установите свойство AllowDynamicDataLoading в false, чтобы загружать все узлы одновременно сразу после привязки элемента управления к источнику данных.

Дополнительную информацию смотрите в следующих разделах:

Общий API

  • ItemsSource — установите это свойство в объект, содержащий данные (например, коллекцию корневых объектов), используемые для создания корневых узлов.
  • ChildrenSelector — селектор, возвращающий дочерние объекты для каждого бизнес-объекта (записи). Используйте либо ChildrenSelector, либо ChildrenFieldName.
  • ChildrenFieldName — имя свойства (поля), хранящего дочерние объекты для каждого бизнес-объекта. Используйте либо ChildrenSelector, либо ChildrenFieldName.
  • HasChildrenFieldName — имя логического свойства, возвращающего true, если объект имеет дочерние объекты. Свойство HasChildrenFieldName позволяет элементу управления динамически определять видимость кнопок разворачивания ('+'). Используйте HasChildrenFieldName вместе со свойством ChildrenFieldName.

API TreeView

  • DataFieldName — имя поля, данные которого отображаются в элементе управления.

Смотрите также



* Эта страница переведена с использованием технологий машинного перевода.