Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Замечание
Эта документация предназначена для разработчиков .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.
См. также
- DataItem
- Общие сведения о типах элементов управления автоматизации пользовательского интерфейса
- Обзор автоматизации пользовательского интерфейса