DataGrid 控制項類型

本主題提供DataGrid控制項類型的 Microsoft 消費者介面自動化支援相關資訊。

DataGrid控制項類型可讓使用者輕鬆地處理包含資料行或資料列中呈現之資料或自動化元素的專案。 資料格控制項具有項目資料列和關於這些項目的資訊資料行。 Windows Vista 檔案總管中的清單檢視控制項是支援 DataGrid 控制項類型的範例。

下列各節會定義DataGrid控制項類型所需的樹狀結構、屬性、控制項模式和事件消費者介面自動化。 消費者介面自動化需求適用于 UI 架構/平臺整合消費者介面自動化控制項類型和控制項模式支援的所有資料格控制項。

本主題包含下列各節。

一般樹狀結構

下表描述與資料格控制項相關的消費者介面自動化樹狀結構的典型控制項和內容檢視,並描述每個檢視中可包含的內容。 如需 UI 自動化樹狀結構的詳細資訊,請參閱 UI 自動化樹狀結構概觀

控制項檢視 內容檢視
  • DataGrid
    • 標頭 (0、1 或 2)
      • HeaderItem (行數或列數)
    • DataItem (0 或更多;可以在階層中結構化)
  • DataGrid
    • DataItem (0 或更多;可以在階層中結構化)

 

相關屬性

下表列出消費者介面自動化屬性,其值或定義與DataGrid控制項類型特別相關。 如需消費者介面自動化屬性的詳細資訊,請參閱從 消費者介面自動化 Elements 擷取屬性

使用者介面自動化屬性 注意
UIA_AutomationIdPropertyId 請參閱備註。 此屬性的值在消費者介面自動化樹狀結構的原始檢視中的所有對等專案之間必須是唯一的。
UIA_BoundingRectanglePropertyId 請參閱備註。 包含整個控制項的最外層矩形。
UIA_ClickablePointPropertyId 請參閱備註。 如果有週框即受支援。 如果周框內的每個點都不可點選,而且元素會執行特製化點擊測試,請覆寫並提供可點選的點。
UIA_ControlTypePropertyId DataGrid
UIA_IsContentElementPropertyId true 此屬性的值必須一律為 TRUE。 這表示核取方塊控制項一律應包含在 UI 自動化樹狀結構的內容檢視中。
UIA_IsControlElementPropertyId true 此屬性的值必須一律 為 TRUE。 這表示資料格控制項必須一律包含在消費者介面自動化樹狀結構的控制項檢視中。
UIA_IsKeyboardFocusablePropertyId 請參閱備註。 如果控制項可接收鍵盤焦點,就必定支援此屬性。
UIA_LabeledByPropertyId 請參閱備註。 如果有靜態文字標籤,此屬性必須公開該控制項的參考。
UIA_LocalizedControlTypePropertyId 請參閱備註。 對應至 DataGrid 控制項類型的當地語系化字串。 en-US 或英文 (美國) 的預設值為 「data grid」。
UIA_NamePropertyId 請參閱備註。 資料格控制項通常會從靜態文字標籤取得其 Name 屬性的值。 如果沒有靜態文字標籤,應用程式開發人員必須為 Name 屬性指派值。 Name屬性的值絕對不能是編輯控制項的文字內容。

 

必要的控制項模式

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

控制項模式 支援 備註
IGridProvider 必要 資料格控制項本身一律支援 Grid 控制項模式,因為它包含的專案具有在方格中配置中繼資料。
IScrollProvider 相依 資料格可捲動與否,會視內容以及是否有捲軸而定。
ISelectionProvider 相依 資料格可選取與否,視內容而定。
ITableProvider 相依 具有標頭的資料格控制項應該支援 資料表 控制項模式。

 

資料格容器內的資料項目至少會支援:

必要的事件

下表列出資料格控制項需要支援消費者介面自動化事件。 如需 UI Automation Events Overview事件的詳細資訊,請參閱

UI 自動化事件 備註
UIA_AutomationFocusChangedEventId
UIA_BoundingRectanglePropertyId 屬性變更事件。
UIA_IsEnabledPropertyId 屬性變更事件。 如果控制項支援 IsEnabled 屬性,它必須支援這個事件。
UIA_IsOffscreenPropertyId 屬性變更事件。 如果控制項支援 IsOffscreen 屬性,它必須支援此事件。
UIA_LayoutInvalidatedEventId
UIA_StructureChangedEventId
UIA_MultipleViewCurrentViewPropertyId 屬性變更事件。 如果控制項支援 MultipleView 控制項模式的 CurrentView 屬性,它必須支援這個事件。
UIA_ScrollHorizontallyScrollablePropertyId 屬性變更事件。 如果控制項支援 Scroll 控制項模式,它必須支援這個事件。
UIA_ScrollHorizontalScrollPercentPropertyId 屬性變更事件。 如果控制項支援 Scroll 控制項模式,它必須支援這個事件。
UIA_ScrollHorizontalViewSizePropertyId 屬性變更事件。 如果控制項支援 Scroll 控制項模式,它必須支援這個事件。
UIA_ScrollVerticalScrollPercentPropertyId 屬性變更事件。 如果控制項支援 Scroll 控制項模式,它必須支援這個事件。
UIA_ScrollVerticallyScrollablePropertyId 屬性變更事件。 如果控制項支援 Scroll 控制項模式,它必須支援這個事件。
UIA_ScrollVerticalViewSizePropertyId 屬性變更事件。 如果控制項支援 Scroll 控制項模式,它必須支援這個事件。
UIA_Selection_InvalidatedEventId

 

DataGrid 控制項類型範例

下圖說明實作 DataGrid 控制項類型的清單檢視控制項。

具有 datagrid 控制項類型的清單檢視控制項螢幕擷取畫面

與清單檢視控制項相關的控制項檢視和消費者介面自動化樹狀結構的內容檢視如下所示。 每個自動化項目的控制項模式顯示在括號中。

UI 自動化樹狀結構 - 控制項檢視 UI 自動化樹狀結構 - 內容檢視
DataGrid (Sort、Table、Selection、Grid)
  • 標頭
    • HeaderItem "Name" (Invoke)
    • HeaderItem "Date Modified" (Invoke)
    • HeaderItem "Size" (Invoke)
  • Group "Contoso" (TableItem, GridItem, SelectionItem, Table*, Grid*)
    • DataItem "Accounts Receivable.doc" (SelectionItem, Invoke, TableItem*, GridItem*)
    • DataItem "Accounts Payable.doc" (SelectionItem, Invoke, TableItem*, GridItem*)
DataGrid (Table, Grid, Selection)
  • Group "Contoso" (TableItem, GridItem, SelectionItem, Table*, Grid*)
    • DataItem "Accounts Receivable.doc" (SelectionItem, Invoke, TableItem*, GridItem*)
    • DataItem "Accounts Payable.doc" (SelectionItem, Invoke, TableItem*, GridItem*)

 

*上述範例顯示包含多個控制項層級的資料方格。 Group (「Contoso」) 控制項包含兩個DataItem控制項, (「Accounts Receivable.doc」 和 「Accounts Payable.doc」) 。 DataGrid/GridItem配對與另一個層級的配對無關。 Group底下的DataItem控制項也可以公開為ListItem控制項類型,使其更清楚地呈現為可選取的物件,而不是簡單的資料元素。 本範例不包含群組資料項目的子項目。 如需多個控制項層級的另一個範例,請參閱 DataItem 控制項類型。

概念

UI 自動化控制項類型概觀

UI 自動化概觀