Share via


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

注意

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

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

DataGrid 控制項類型可讓使用者易於使用包含以資料行所表示之中繼資料的項目。 資料格控制項具有項目資料列和關於這些項目的資訊資料行。 Microsoft Vista 檔案總管中的「清單檢視」控制項即是支援 DataGrid 控制項類型的範例。

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

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

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

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

  • 標頭 (0、1 或 2)

    • HeaderItem (行數或列數)
  • DataItem (0 或更多;可以結構化為階層)
DataGrid

- DataItem (0 或更多;可以結構化為階層)

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

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

屬性 備註
AutomationIdProperty 請參閱備註。 此屬性的值在應用程式中的所有控制項都不得重複。
BoundingRectangleProperty 請參閱備註。 包含整個控制項的最外層矩形。
ClickablePointProperty 請參閱備註。 如果有週框即受支援。 如果週框中沒有任何可點選的點,而且您執行的是特殊化點擊測試,則會覆寫並提供可點選的點。
ControlTypeProperty DataGrid 此值與所有使用者介面架構的值相同。
IsContentElementProperty True 這個屬性的值必須一律是 True。 這表示核取方塊控制項一律應包含在 UI 自動化樹狀結構的內容檢視中。
IsControlElementProperty True 這個屬性的值必須一律是 True。 這表示核取方塊控制項一律應包含在 UI 自動化樹狀結構的控制項檢視中。
IsKeyboardFocusableProperty 請參閱備註。 如果控制項可接收鍵盤焦點,就必定支援此屬性。
LabeledByProperty 請參閱備註。 如果有靜態文字標籤,那麼這個屬性必須公開該控制項的參考。
LocalizedControlTypeProperty 「資料格」 對應到 DataGrid 控制項類型的當地語系化字串。
NameProperty 請參閱備註。 資料格控制項通常會從靜態文字標籤取得其 Name 屬性值。 如果沒有靜態文字標籤,應用程式開發人員就必須指派 Name 屬性的值。 Name 屬性的值絕不能是編輯控制項的文字內容。

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

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

控制項模式 支援 備註
IGridProvider Yes 資料格控制項本身一律支援方格控制項模式,因為其所包含的項目具有在格線中配置的中繼資料。
IScrollProvider 相依 資料格可捲動與否,會視內容以及是否有捲軸而定。
ISelectionProvider 相依 資料格可選取與否,視內容而定。
ITableProvider Yes 資料格控制項在其樹狀子結構一律會有標題,因此必須支援表格控制項模式。

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

  • 選取項目控制項模式 (如果資料格可供選取)

  • 捲動項目控制項模式 (如果資料格可供捲動)

  • 方格項目控制項模式

  • Table Item 控制項模式

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

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

UI 自動化事件 支援 備註
AutomationFocusChangedEvent 必要
BoundingRectangleProperty 屬性變更事件。 必要
IsEnabledProperty 屬性變更事件。 必要
IsOffscreenProperty 屬性變更事件。 必要
LayoutInvalidatedEvent 相依
StructureChangedEvent 必要
CurrentViewProperty 屬性變更事件。 相依
HorizontallyScrollableProperty 屬性變更事件。 相依 如果此控制項支援捲動模式,就必須支援這個事件。
HorizontalScrollPercentProperty 屬性變更事件。 相依 如果此控制項支援捲動模式,就必須支援這個事件。
HorizontalViewSizeProperty 屬性變更事件。 相依 如果此控制項支援捲動模式,就必須支援這個事件。
VerticalScrollPercentProperty 屬性變更事件。 相依 如果此控制項支援捲動模式,就必須支援這個事件。
VerticallyScrollableProperty 屬性變更事件。 相依 如果此控制項支援捲動模式,就必須支援這個事件。
VerticalViewSizeProperty 屬性變更事件。 相依 如果此控制項支援捲動模式,就必須支援這個事件。
InvalidatedEvent 必要

日期方格控制項類型範例

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

Graphic of a List View control with two data items

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

UI 自動化樹狀結構 - 控制項檢視 UI 自動化樹狀結構 - 內容檢視
  • DataGrid (Table, Grid, Selection)
  • 頁首

    • 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*)

*上述範例顯示的 DataGrid 包含多層控制項。 Group ("Contoso") 控制項包含兩個 DataItem 控制項 ("Accounts Receivable.doc" 和 "Accounts Payable.doc")。 DataGrid/GridItem 對組與另一層級的對組無關, Group 底下的 DataItem 控制項也可以公開為 ListItem 控制項類型,如此可以更清楚將其表明為可選取的物件,而非僅是簡單的資料項目。 本範例不包含群組資料項目的子項目。

另請參閱