備註
本檔適用於想要使用 System.Windows.Automation 命名空間中定義的受控UI自動化類別的 .NET Framework 開發人員。 如需 UI 自動化的最新資訊,請參閱 Windows 自動化 API:使用者介面自動化。
本主題提供 DataItem 控制件類型Microsoft使用者介面自動化支援的相關信息。 在UI自動化中,控件類型是一組控件必須符合才能使用 ControlTypeProperty 屬性的條件。 這些條件包括UI自動化樹狀結構、UI自動化屬性值和控件模式的特定指導方針。
聯繫人清單中的項目是數據項控件的範例。 數據項控制項包含使用者感興趣的資訊。 它比簡單的清單專案更複雜,因為它包含更豐富的資訊。
下列各節會定義 DataItem 控制項類型所需的 UI 自動化樹狀結構、屬性、控制件模式和事件。 使用者介面自動化需求適用於 Windows Presentation Foundation、Win32 或 Windows Forms 的所有數據項控件。
必要的 UI 自動化樹狀結構
下表描述與數據項控件相關的UI自動化樹狀結構的控件檢視和內容檢視,並描述每個檢視中可包含的內容。 如需 UI 自動化樹狀結構的詳細資訊,請參閱 UI 自動化樹狀結構概觀。
UI 自動化樹狀目錄 - 控件檢視 | UI 自動化樹狀目錄 - 內容檢視 |
---|---|
DataItem - 變化 (0 或更多;可在階層中結構化) |
DataItem - 變化 (0 或更多;可在階層中結構化) |
數據格中的數據項元素可以裝載各種物件,包括另一層數據項,或文字、影像或編輯控件等特定網格線專案。 如果數據項元素具有特定的物件角色,元素應該公開為特定控件類型;例如,方格中可選取數據項的 ListItem 控件類型。
必要的UI自動化屬性
下表列出其值或定義與數據項控件特別相關的屬性。 如需UI自動化屬性的詳細資訊,請參閱 用戶端的UI自動化屬性。
房產 | 價值觀 | 註釋 |
---|---|---|
AutomationIdProperty | 請參閱備註。 | 這個屬性的值在應用程式中的所有控件中必須是唯一的。 |
BoundingRectangleProperty | 請參閱備註。 | 包含整個控制項的最外層矩形。 |
ClickablePointProperty | 請參閱備註。 | 如果有周框,則支援 。 如果周框內的每個點都無法點選,而且您執行特製化的點擊測試,則覆寫並提供可點選的點。 |
ControlTypeProperty | DataItem | 此值與所有使用者介面架構的值相同。 |
IsContentElementProperty | 對 | 數據項控件必須一律為內容。 |
IsControlElementProperty | 對 | 數據項控件一律必須是 控件。 |
IsKeyboardFocusableProperty | 請參閱備註。 | 如果控制項可接收鍵盤焦點,就必定支援此屬性。 |
ItemStatusProperty | 請參閱備註。 | 如果控件包含動態更新的狀態,則必須支援這個屬性,以便輔助技術可以在元素的狀態變更時接收更新。 |
ItemTypeProperty | 請參閱備註。 | 這是字串值,會傳達給用戶專案所代表的基礎物件。 範例包括「媒體檔案」或「聯繫人」。 |
LabeledByProperty | Null |
數據項控件沒有靜態文字標籤。 |
LocalizedControlTypeProperty | 資料項目 | 對應於控制項類型 DataItem 的在地化字串。 |
NameProperty | 請參閱備註。 | 數據項控件總是包含主要文字元素,作為使用者的語意標識符的最主要關聯項目。 |
必要的使用者介面自動化控制模式
下表列出所有數據項控件必須支援的Microsoft UI 自動化控件模式。 如需控制樣式的詳細資訊,請參閱 UI 自動化控制樣式概觀。
控制件模式 | 支援 | 註釋 |
---|---|---|
IExpandCollapseProvider | 視情況而定 | 如果數據項可以展開或折疊以顯示和隱藏資訊,則必須支持展開折疊模式。 |
IGridItemProvider | 視情況而定 | 當容器內的數據項集合可以在空間上進行項目到項目的巡覽時,數據項將支援網格項目模式。 |
IScrollItemProvider | 視情況而定 | 所有數據項目都支持當數據容器具有比螢幕所能顯示更多的數據項目時,能夠以「卷動項目」模式捲動至視圖。 |
ISelectionItemProvider | 是的 | 所有數據項都必須支持選取專案模式,以指出專案何時選取。 |
ITableItemProvider | 視情況而定 | 如果數據項包含在數據格控件類型內,則會支援此模式。 |
IToggleProvider | 視情況而定 | 如果數據項包含可迴圈執行的狀態。 |
IValueProvider | 視情況而定 | 如果數據項的主要文字可編輯,則必須支援值模式。 |
使用大型清單中的數據項
大型清單通常是在UI架構內虛擬化數據,以協助效能。 因此,使用者介面自動化客戶端無法以與其他項目容器相同的方式,利用使用者介面自動化查詢功能來擷取完整樹狀結構的內容。 客戶端應該先將專案捲動到檢視中(或展開控件以顯示所有有價值的選項),再從數據項存取完整的資訊集。
在數據項的UI Automation元素上呼叫 SetFocus
時,Microsoft Windows 檔案總管案例會成功傳回,並將焦點設定為數據項子樹內的 [編輯]。
必要的UI自動化事件
下表列出所有數據項控制項必須支援的UI自動化事件。 如需事件的詳細資訊,請參閱 UI 自動化事件概觀。
UI 自動化事件 | 支援 | 註釋 |
---|---|---|
AutomationFocusChangedEvent | 為必填項目 | 沒有 |
BoundingRectangleProperty 屬性變更事件。 | 為必填項目 | 沒有 |
IsEnabledProperty 屬性變更事件。 | 為必填項目 | 沒有 |
IsOffscreenProperty 屬性變更事件。 | 為必填項目 | 沒有 |
NameProperty 屬性變更事件。 | 為必填項目 | 沒有 |
StructureChangedEvent | 為必填項目 | 沒有 |
InvokedEvent | 視情況而定 | 沒有 |
ExpandCollapseStateProperty 屬性變更事件。 | 視情況而定 | 沒有 |
ElementAddedToSelectionEvent | 為必填項目 | 沒有 |
ElementRemovedFromSelectionEvent | 為必填項目 | 沒有 |
ElementSelectedEvent | 為必填項目 | 沒有 |
ToggleStateProperty 屬性變更事件。 | 視情況而定 | 沒有 |
ValueProperty 屬性變更事件。 | 視情況而定 | 沒有 |
DataItem 控件類型範例
下圖說明清單檢視控件中的 DataItem 控制項類型,並支援資料行的豐富資訊。
與資料項控制相關的 UI 自動化樹的控制檢視及內容檢視顯示如下。 每個自動化專案的控件模式會顯示在括弧中。 群組 「Contoso」 也是數據格主機控件方格的一部分。
UI 自動化樹狀目錄 - 控件檢視 | UI 自動化樹狀目錄 - 內容檢視 |
---|---|
- 群組「Contoso」(表格,網格) - DataItem “Accounts Receivable.doc” (TableItem、GridItem、SelectionItem、Invoke) - 應收帳款.doc - 編輯「名稱」(表格項目,網格項目,值「Accounts Receivable.doc」) - 編輯 “日期已修改” (TableItem, GridItem, Value “8/25/2006 3.29 PM”) - 編輯「大小」(格項,表項,值「11.0 KB」) - DataItem “Accounts Payable.doc”(TableItem,GridItem,SelectionItem,Invoke) - ... |
- 群組「Contoso」(表格,網格) - DataItem “Accounts Receivable.doc” (TableItem、GridItem、SelectionItem、Invoke) - 應收帳款.doc - 編輯「名稱」(表格項目,網格項目,值「Accounts Receivable.doc」) - 編輯 “日期已修改” (TableItem, GridItem, Value “8/25/2006 3.29 PM”) - 編輯「大小」(格項,表項,值「11.0 KB」) - DataItem “Accounts Payable.doc”(TableItem,GridItem,SelectionItem,Invoke) - … |
如果方格代表可選取的專案清單,可以使用 ListItem 控件類型來公開對應的 UI 元素,而不是 DataItem 控件類型。 在上述範例中,Group (“Contoso” 底下的 DataItem 元素 (“Accounts Receivable.doc” 和 “Accounts Payable.doc”) 可以藉由將其公開為 ListItem 控件類型來改善,因為該類型已經支援 SelectionItem 控件模式。