DataItem 控制件類型
本主題提供 DataItem 控件類型的Microsoft使用者介面自動化支援相關信息。
聯繫人清單中的項目是數據項控件的範例。 數據項控制項包含使用者感興趣的資訊。 它比簡單的清單專案更複雜,因為它包含更豐富的資訊。
下列各節會定義 DataItem 控件類型所需的 UI 自動化樹狀結構、屬性、控制項模式和事件。 使用者介面自動化需求適用於UI架構/平臺整合控制項類型和控制項模式的UI自動化支援的所有資料項控制項。
本主題包含下列各節。
一般樹狀結構
下表描述與數據項控件相關的UI自動化樹狀結構的一般控件和內容檢視,並描述每個檢視中可包含的內容。 如需 UI 自動化樹狀結構的詳細資訊,請參閱 UI 自動化樹狀結構概觀。
控件檢視 | 內容檢視 |
---|---|
|
|
數據格中的數據項元素可以裝載各種物件,包括另一層數據項,或文字、影像或編輯控件等特定網格線專案。 如果數據項元素具有特定的物件角色,元素應該公開為特定控件類型;例如,ListItem 方格中可選取數據項的控件類型。
相關屬性
下表列出UI自動化屬性,其值或定義與DataItem控件類型特別相關。 如需 UI 自動化屬性的詳細資訊,請參閱 從 UI 自動化元素擷取屬性。
UI 自動化屬性 | 價值 | 筆記 |
---|---|---|
UIA_AutomationIdPropertyId | 請參閱附注。 | 在UI自動化樹狀結構的原始檢視中,此屬性的值在所有對等專案之間必須是唯一的。 |
UIA_BoundingRectanglePropertyId | 請參閱附注。 | 包含整個控件的最外框。 |
UIA_ClickablePointPropertyId | 請參閱附注。 | 如果有周框,則支援 。 如果周框內的每個點都無法點選,且元素會執行特製化的點擊測試、覆寫並提供可點選的點。 |
UIA_ControlTypePropertyId | DataItem | |
UIA_IsContentElementPropertyId | 真 | 數據項控件必須一律為內容。 |
UIA_IsControlElementPropertyId | 真 | 數據項控件一律必須是 控件。 |
UIA_IsKeyboardFocusablePropertyId | 請參閱附注。 | 如果控件可以接收鍵盤焦點,它必須支援這個屬性。 |
UIA_ItemStatusPropertyId | 請參閱附注。 | 如果控件包含動態更新的狀態,則必須支援這個屬性,以便輔助技術可以在元素的狀態變更時接收更新。 |
UIA_ItemTypePropertyId | 請參閱附注。 | 這是字串值,會傳達給用戶專案所代表的基礎物件。 範例包括「媒體檔案」和「聯繫人」。 |
UIA_LabeledByPropertyId | 零 | 數據項控件沒有靜態文字標籤。 |
UIA_LocalizedControlTypePropertyId | 請參閱附注。 | 對應至 DataItem 控件類型的當地語系化字串。 預設值為 en-US 或英文 (美國) 的 「數據項」。 |
UIA_NamePropertyId | 請參閱附注。 | 數據項控件一律包含使用者將辨識為專案標識碼的主要文字專案。 |
必要的控制件模式
下表列出所有數據項控件必須支援的UI自動化控制件模式。 如需控制樣式的詳細資訊,請參閱 UI 自動化控制樣式概觀。
控制件模式 | 支援 | 筆記 |
---|---|---|
IExpandCollapseProvider | 取決於 | 如果數據項可以展開或折疊以顯示和隱藏資訊,則必須支援 ExpandCollapse 控制項模式。 |
IGridItemProvider | 取決於 | 當數據項集合位於可空間巡覽的專案對專案容器內時,數據項將支援 GridItem 控件模式。 |
IScrollItemProvider | 取決於 | 所有數據項都支援在數據容器具有超過螢幕大小時,使用 ScrollItem 控件模式卷動至檢視。 |
ISelectionItemProvider | 取決於 | 選取數據項的能力取決於內容。 |
ITableItemProvider | 取決於 | 如果數據項包含在具有標頭專案的 DataGrid 控件類型內,它應該支援 TableItem 控件模式。 |
IToggleProvider | 取決於 | 如果數據項包含可迴圈執行的狀態,它應該支援 切換 控件模式。 |
IValueProvider | 取決於 | 如果數據項的主要文字可編輯,則必須支援 值 控件模式。 |
在大型清單中使用 DataItems
由於大型清單通常會在UI架構內虛擬化以協助效能,因此使用者介面自動化客戶端無法使用UI自動化查詢功能,以與其他專案容器中相同的方式來搜尋完整樹狀結構的內容。 客戶端應該先將專案捲動到檢視中(或展開控件以顯示所有可用選項),再從數據項存取完整的資訊集。
在數據項的UI Automation元素上呼叫 SetFocus 時,Microsoft Windows 檔案總管會成功傳回,並讓焦點設定為數據項子樹內的 [編輯] 控件。
必要事件
下表列出數據項控制項需要支援的UI自動化事件。 如需事件的詳細資訊,請參閱 UI 自動化事件概觀。
UI 自動化事件 | 筆記 |
---|---|
UIA_AutomationFocusChangedEventId | |
UIA_BoundingRectanglePropertyId 屬性變更事件。 | |
UIA_ExpandCollapseExpandCollapseStatePropertyId 屬性變更事件。 | 如果控件支援 ExpandCollapse 控件模式,則必須支援此事件。 |
UIA_Invoke_InvokedEventId | 如果控件支援 Invoke 控件模式,則必須支援此事件。 |
UIA_IsEnabledPropertyId 屬性變更事件。 | 如果控件支援 IsEnabled 屬性,則必須支援這個事件。 |
UIA_IsOffscreenPropertyId 屬性變更事件。 | 如果控件支援 IsOffscreen 屬性,它就必須支援這個事件。 |
UIA_ItemStatusPropertyId 屬性變更事件。 | 如果控件支援 ItemStatus 屬性,它就必須支持這個事件。 |
UIA_NamePropertyId 屬性變更事件。 | |
UIA_SelectionItem_ElementAddedToSelectionEventId | 如果控件支援 SelectionItem 控件模式,則必須支援這個事件。 |
UIA_SelectionItem_ElementRemovedFromSelectionEventId | 如果控件支援 SelectionItem 控件模式,則必須支援這個事件。 |
UIA_SelectionItem_ElementSelectedEventId | 如果控件支援 SelectionItem 控件模式,則必須支援這個事件。 |
UIA_StructureChangedEventId | |
UIA_ToggleToggleStatePropertyId 屬性變更事件。 | 如果控件支援 切換 控件模式,它必須支援這個事件。 |
UIA_ValueValuePropertyId 屬性變更事件。 | 如果控件支援 Value 控件模式,它必須支援這個事件。 |
DataItem 控件類型範例
下圖說明清單檢視控件中的DataItem控制項類型。
使用 dataitem 控制項類型的清單檢視控件
下方會顯示與數據項控件相關的UI自動化樹狀結構的控件檢視和內容檢視。 每個自動化專案的控件模式會顯示在括弧中。 Group “Contoso” 也是數據格主機控件方格的一部分。 如需較高層級網格線結構的範例,請參閱 DataGrid 控件類型。
UI 自動化樹狀目錄 - 控件檢視 | UI 自動化樹狀目錄 - 內容檢視 |
---|---|
|
|
如果方格代表可選取的專案清單,則對應的可選取UI元素可以使用 ListItem 控件類型來公開,而不是DataItem控制項類型。 在上述範例中,DataItem 專案 (“Accounts Receivable.doc” 和 “Accounts Payable.doc”) 在 Group (“Contoso”) 下,可以藉由將其公開為 ListItem 控件類型來改善,因為該類型已經支援 SelectionItem 控件模式。
相關主題