Поделиться через


Поддержка автоматизации пользовательского интерфейса для типа элемента управления DataItem

Замечание

Эта документация предназначена для разработчиков .NET Framework, которые хотят использовать управляемые классы автоматизации пользовательского интерфейса, определенные в пространстве имен System.Windows.Automation. Последние сведения об автоматизации пользовательского интерфейса см. в разделе API автоматизации Windows: автоматизация пользовательского интерфейса.

В этом разделе содержатся сведения о поддержке службы автоматизации пользовательского интерфейса Майкрософт для типа элемента управления DataItem. В службе автоматизации пользовательского интерфейса тип элемента управления — это набор условий, которые должны соответствовать элементу ControlTypeProperty управления для использования свойства. Условия включают конкретные рекомендации по структуре дерева автоматизации пользовательского интерфейса, значениям свойств автоматизации пользовательского интерфейса и шаблонам элементов управления.

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

В следующих разделах определяется необходимая структура дерева автоматизации пользовательского интерфейса, свойства, шаблоны элементов управления и события для типа элемента управления DataItem. Требования к автоматизации пользовательского интерфейса применяются ко всем элементам управления элементами данных, будь то Windows Presentation Foundation (WPF), Win32 или Windows Forms.

Требуемая структура дерева автоматизации пользовательского интерфейса

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

Дерево автоматизации пользовательского интерфейса — представление элемента управления Дерево автоматизации пользовательского интерфейса — представление содержимого
DataItem

— варьируется (0 или более; может иметь иерархическую структуру)
DataItem

— варьируется (0 или более; может иметь иерархическую структуру)

Элемент элемента данных в сетке данных может размещать различные объекты, включая другой слой элементов данных или определенные элементы сетки, такие как текст, изображения или элементы управления редактированием. Если элемент элемента данных имеет определенную роль объекта, элемент должен быть предоставлен в качестве определенного типа элемента управления; Например, тип элемента управления ListItem для выбранного элемента данных в сетке.

Обязательные свойства автоматизации пользовательского интерфейса

В следующей таблице перечислены свойства, значения или определения которых особенно важны для элементов управления элементами данных. Дополнительные сведения о свойствах автоматизации пользовательского интерфейса см. в разделе "Свойства автоматизации пользовательского интерфейса для клиентов".

Недвижимость Ценность Примечания.
AutomationIdProperty См. примечания. Значение этого свойства должно быть уникальным для всех элементов управления в приложении.
BoundingRectangleProperty См. примечания. Внешний прямоугольник, содержащий весь элемент управления.
ClickablePointProperty См. примечания. Поддерживается, если существует ограничивающий прямоугольник. Если не на каждую точку в ограничивающем прямоугольнике можно щелкнуть, и вы проводите специализированную проверку на попадание, то переопределите и укажите точку, на которую можно щелкнуть.
ControlTypeProperty DataItem Это значение является одинаковым для всех инфраструктур пользовательского интерфейса.
IsContentElementProperty Верно Контроллер элемента данных всегда должен содержать данные.
IsControlElementProperty Верно Элемент данных должен всегда быть элементом управления.
IsKeyboardFocusableProperty См. примечания. Если элемент управления может получать фокус клавиатуры, он должен поддерживать это свойство.
ItemStatusProperty См. примечания. Если элемент управления содержит состояние, которое обновляется динамически, это свойство должно поддерживаться таким образом, чтобы вспомогательные технологии могли получать обновления при изменении состояния элемента.
ItemTypeProperty См. примечания. Это строковое значение, которое передает пользователю базовый объект, который представляет элемент. Примерами являются "Файл мультимедиа" или "Контакт".
LabeledByProperty Null Элементы управления элементами данных не имеют статической текстовой метки.
LocalizedControlTypeProperty элемент данных Локализованная строка, соответствующая типу элемента управления DataItem.
NameProperty См. примечания. Элемент управления элементом данных всегда содержит основной текстовый элемент, связанный с тем, что пользователь будет ассоциировать как наиболее семантический идентификатор элемента.

Обязательные шаблоны элементов управления автоматизации пользовательского интерфейса

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

Шаблон элемента управления Поддержка Примечания.
IExpandCollapseProvider Зависит Если элемент данных можно развернуть или свернуть, чтобы показывать или скрывать информацию, необходимо поддерживать шаблон "Развертывание и свертывание".
IGridItemProvider Зависит Элементы данных будут поддерживать шаблон элемента сетки, если коллекция элементов данных доступна в контейнере, который может быть пространственно перемещён от элемента к элементу.
IScrollItemProvider Зависит Все элементы данных поддерживают возможность прокрутки в представление с помощью шаблона "Прокручиваемый элемент", если контейнер данных содержит больше элементов, чем можно поместить на экране.
ISelectionItemProvider Да Все элементы данных должны поддерживать шаблон элемента выбора, чтобы указать, когда выбран элемент.
ITableItemProvider Зависит Если элемент данных содержится в типе элемента управления "Сетка данных", он будет поддерживать этот шаблон.
IToggleProvider Зависит Если элемент данных содержит состояние, которое может быть прокручено.
IValueProvider Зависит Если основной текст элемента данных подлежит редактированию, следует поддерживать шаблон «Значение».

Работа с элементами данных в больших списках

Большие списки часто виртуализированы в платформах пользовательского интерфейса для повышения производительности. Из-за этого клиент автоматизации пользовательского интерфейса не может использовать функцию запроса автоматизации пользовательского интерфейса для очистки содержимого полного дерева таким же образом, что и в других контейнерах элементов. Клиент должен прокрутить элемент в представление (или развернуть элемент управления, чтобы отобразить все ценные параметры)перед доступом к полному набору сведений из элемента данных.

При вызове SetFocus на элементе автоматизации пользовательского интерфейса для элемента данных, операция в Microsoft Windows Explorer будет успешно выполнена, и фокус будет установлен на элементе 'Изменить' в поддереве элемента данных.

Обязательные события автоматизации пользовательского интерфейса

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

событие модель автоматизации пользовательского интерфейса Поддержка Примечания.
AutomationFocusChangedEvent Обязательно Отсутствует
BoundingRectangleProperty событие изменения свойства. Обязательно Отсутствует
IsEnabledProperty событие изменения свойства. Обязательно Отсутствует
IsOffscreenProperty событие изменения свойства. Обязательно Отсутствует
NameProperty событие изменения свойства. Обязательно Отсутствует
StructureChangedEvent Обязательно Отсутствует
InvokedEvent Зависит Отсутствует
ExpandCollapseStateProperty событие изменения свойства. Зависит Отсутствует
ElementAddedToSelectionEvent Обязательно Отсутствует
ElementRemovedFromSelectionEvent Обязательно Отсутствует
ElementSelectedEvent Обязательно Отсутствует
ToggleStateProperty событие изменения свойства. Зависит Отсутствует
ValueProperty событие изменения свойства. Зависит Отсутствует

Пример элемента управления типа DataItem

На следующем рисунке показан тип элемента управления DataItem в элементе управления "Представление списка" с поддержкой расширенных сведений для столбцов.

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

Представление управления и представление содержимого дерева автоматизации пользовательского интерфейса, относящиеся к элементу управления данными, отображаются ниже. Шаблоны элементов управления для каждого элемента автоматизации отображаются в скобках. Группа "Contoso" также является частью хост-управления "Сетка данных".

Дерево автоматизации пользовательского интерфейса — представление элемента управления Дерево автоматизации пользовательского интерфейса — представление содержимого
— Группа "Contoso" (таблица, сетка)
— Элемент данных "Accounts Receivable.doc" (TableItem, GridItem, SelectionItem, Invoke)
— Изображение "Дебиторская задолженность.doc"
— Редактировать "Имя" (TableItem, GridItem, значение "Учетные записи по дебиторской задолженности.doc")
- Изменить "Дата изменения" (TableItem, GridItem, значение "25.08.2006 15:29")
— Изменить "Размер" (GridItem, TableItem, Значение "11.0 KB)
— DataItem "Accounts Payable.doc" (TableItem, GridItem, SelectionItem, Invoke)
- ...
— Группа "Contoso" (таблица, сетка)
— Элемент данных "Accounts Receivable.doc" (TableItem, GridItem, SelectionItem, Invoke)
— Изображение "Дебиторская задолженность.doc"
— Редактировать "Имя" (TableItem, GridItem, значение "Учетные записи по дебиторской задолженности.doc")
- Изменить "Дата изменения" (TableItem, GridItem, значение "25.08.2006 15:29")
— Изменить "Размер" (GridItem, TableItem, Значение "11.0 KB)
— DataItem "Accounts Payable.doc" (TableItem, GridItem, SelectionItem, Invoke)
- …

Если сетка представляет список элементов, доступных для выбора, соответствующие элементы пользовательского интерфейса можно предоставлять с помощью типа элемента управления ListItem вместо типа элемента управления DataItem. В предыдущем примере элементы DataItem ("Дебиторская задолженность.doc" и "Кредиторская задолженность.doc") в группе ("Contoso") можно улучшить, представляя их как элементы управления типа ListItem, поскольку этот тип уже поддерживает шаблон элемента управления SelectionItem.

См. также