共用方式為


DataItem 控制項類型的 UI 自動化支援

注意

本文件適用對象為 .NET Framework 開發人員,其想要使用 System.Windows.Automation 命名空間中定義的受控 UI 自動化類別。 如需 UI 自動化的最新資訊,請參閱 Windows 自動化 API:UI 自動化

本主題提供 DataItem 控制項類型的 Microsoft UI 自動化支援相關資訊。 在 UI 自動化中,控制項類型是一組控制項條件,控制項必須符合條件才能使用 ControlTypeProperty 屬性。 這些條件包括 UI 自動化樹狀結構、UI 自動化屬性值和控制項模式的特定指導方針。

連絡人清單中的項目即是資料項目控制項的範例。 資料項目控制項包含與使用者相關的資訊。 由於包含更為豐富的資訊,這種控制項比簡單的清單項目複雜。

下列章節會定義 DataItem 控制項類型所需的 UI 自動化樹狀結構、屬性、控制項模式與事件。 UI 自動化需求適用於所有資料項目控制項,無論是 Windows Presentation Foundation (WPF)、Win32 或 Windows Forms 皆然。

必要的使用者介面自動化樹狀結構

下表描述與資料項目控制項相關的 UI 自動化樹狀結構的內容檢視與控制項檢視,並說明各檢視中可包含的內容。 如需 UI 自動化樹狀結構的詳細資訊,請參閱 UI 自動化樹狀結構概觀

UI 自動化樹狀結構 - 控制項檢視 UI 自動化樹狀結構 - 內容檢視
DataItem

- 視情況而定 (0 個以上;可以結構化為階層)
DataItem

- 視情況而定 (0 個以上;可以結構化為階層)

資料格中資料項目 (Item) 的項目 (Element) 可裝載各種不同的物件,包括另一層資料項目,或是特定資料格項目 (Element) 如文字、影像或編輯控制項。 如果資料項目 (Item) 的項目 (Element) 具備特定物件角色,則該項目 (Element) 應公開為特定控制項類型;例如,資料格中可選資料項目 (Item) 的 ListItem 控制項類型。

必要的使用者介面自動化屬性

下表列出屬性,其值或定義與資料項目控制項特別有關。 如需 UI 自動化屬性的詳細資訊,請參閱用戶端的 UI 自動化屬性

屬性 備註
AutomationIdProperty 請參閱備註。 此屬性的值在應用程式中的所有控制項都不得重複。
BoundingRectangleProperty 請參閱備註。 包含整個控制項的最外層矩形。
ClickablePointProperty 請參閱備註。 如果有週框即受支援。 如果週框中沒有任何可點選的點,而且您執行的是特殊化點擊測試,則會覆寫並提供可點選的點。
ControlTypeProperty DataItem 此值與所有使用者介面架構的值相同。
IsContentElementProperty True 資料項目控制項必須一律為內容。
IsControlElementProperty True 資料項目控制項必須一律為控制項。
IsKeyboardFocusableProperty 請參閱備註。 如果控制項可接收鍵盤焦點,就必定支援此屬性。
ItemStatusProperty 請參閱備註。 如果控制項包含動態更新的狀態,則必須支援此屬性,使輔助技術得以在項目的狀態變更時接收更新。
ItemTypeProperty 請參閱備註。 這個字串值可讓使用者知道項目所代表的物件為何。 例如「媒體檔案」或「連絡人」。
LabeledByProperty Null 資料項目控制項沒有靜態文字標籤。
LocalizedControlTypeProperty 「資料項目」 對應到 DataItem 控制項類型的當地語系化字串。
NameProperty 請參閱備註。 資料項目控制項一律會包含主要文字項目,這是最富語意的識別項,可讓使用者聯想該項目。

必要的使用者介面自動化控制項模式

下表列出所有資料項目控制項必須支援的 Microsoft UI 自動化控制項模式。 如需控制項模式的詳細資訊,請參閱 UI Automation Control Patterns Overview

控制項模式 支援 備註
IExpandCollapseProvider 相依 如果資料項目可以展開或摺疊來顯示和隱藏資訊,則必須支援展開摺疊模式。
IGridItemProvider 相依 當容器內包含一組資料項目,可以在空間上逐一巡覽項目時,資料項目將會支援方格項目模式。
IScrollItemProvider 相依 當資料容器有太多項目,無法一次顯示在螢幕上時,所有資料項目會支援捲動項目模式的捲動檢視功能。
ISelectionItemProvider Yes 所有資料項目必須支援選取項目模式,表示已選取項目。
ITableItemProvider 相依 如果資料項目包含在資料格控制項類型內,則會支援此模式。
IToggleProvider 相依 如果資料項目包含可循環的狀態。
IValueProvider 相依 如果資料項目的主要文字可以編輯,則必須支援值模式。

在大型清單中使用資料項目

為提高效能,大型清單通常會在 UI framework 內將資料虛擬化。 因此,UI 自動化用戶端無法像在其他項目容器一樣,使用 UI 自動化查詢功能將完整樹狀結構的內容集中顯示在一起。 用戶端應將項目設為捲動檢視 (或展開控制項以顯示所有有用的選項),才能從資料項目存取完整的資訊。

當資料項目的 UI 自動化元素呼叫 SetFocus 時,Microsoft Windows Explorer 案例將成功傳回,並導致焦點設至資料項目樹狀子目錄中的 Edit。

必要的使用者介面自動化事件

下表列出所有資料項目控制項必須支援的 UI 自動化事件。 如需事件的詳細資訊,請參閱 F:System.Windows.Automation.ValuePatternIdentifiers.ValueProperty

UI 自動化事件 支援 備註
AutomationFocusChangedEvent 必要
BoundingRectangleProperty 屬性變更事件。 必要
IsEnabledProperty 屬性變更事件。 必要
IsOffscreenProperty 屬性變更事件。 必要
NameProperty 屬性變更事件。 必要
StructureChangedEvent 必要
InvokedEvent 相依
ExpandCollapseStateProperty 屬性變更事件。 相依
ElementAddedToSelectionEvent 必要
ElementRemovedFromSelectionEvent 必要
ElementSelectedEvent 必要
ToggleStateProperty 屬性變更事件。 相依
ValueProperty 屬性變更事件。 相依

DataItem 控制項類型範例

下圖顯示在清單檢視控制項中的 DataItem 控制項類型,且包含對資料行中豐富資訊的支援。

Graphic of a List View control with two data items

與資料項目控制項相關的 UI 自動化樹狀結構的控制項檢視與內容檢視顯示如下。 每個自動化項目的控制項模式顯示在括號中。 Group "Contoso" 也是資料格主控制項資料格的一部分。

UI 自動化樹狀結構 - 控制項檢視 UI 自動化樹狀結構 - 內容檢視
- Group "Contoso" (Table, Grid)
- DataItem "Accounts Receivable.doc" (TableItem, GridItem, SelectionItem, Invoke)
- Image "Accounts Receivable.doc"
- Edit "Name" (TableItem, GridItem, Value "Accounts Receivable.doc")
- Edit "Date modified" (TableItem, GridItem, Value "8/25/2006 3:29 PM")
- Edit "Size" (GridItem, TableItem, Value "11.0 KB)
- DataItem "Accounts Payable.doc" (TableItem, GridItem, SelectionItem, Invoke)
- ...
- Group "Contoso" (Table, Grid)
- DataItem "Accounts Receivable.doc" (TableItem, GridItem, SelectionItem, Invoke)
- Image "Accounts Receivable.doc"
- Edit "Name" (TableItem, GridItem, Value "Accounts Receivable.doc")
- Edit "Date modified" (TableItem, GridItem, Value "8/25/2006 3:29 PM")
- Edit "Size" (GridItem, TableItem, Value "11.0 KB)
- DataItem "Accounts Payable.doc" (TableItem, GridItem, SelectionItem, Invoke)
- …

如果資料格表示可選取項目的清單,則對應的使用者介面項目可使用 ListItem 控制項類型公開,而不是 DataItem 控制項類型。 在前述範例中,Group ("Contoso") 下的 DataItem 項目 ("Accounts Receivable.doc" 和 "Accounts Payable.doc") 可藉由公開為 ListItem 控制項類型的方式獲得改善,因為該類型已支援 SelectionItem 控制項模式。

另請參閱