備註
本檔適用於想要使用 System.Windows.Automation 命名空間中定義的受控UI自動化類別的 .NET Framework 開發人員。 如需 UI 自動化的最新資訊,請參閱 Windows 自動化 API:使用者介面自動化。
本主題提供DataGrid控件類型Microsoft使用者介面自動化支持的相關信息。 在UI自動化中,控件類型是控制項必須符合的一組條件,才能使用 ControlType
屬性。 這些條件包括UI自動化樹狀結構、UI自動化屬性值和控件模式的特定指導方針。
DataGrid 控制件類型可讓使用者輕鬆地處理包含數據行中所表示元數據的專案。 數據格控件具有這些項目的數據列和數據行的相關信息。 Microsoft Vista Explorer 中的清單檢視控件是支援 DataGrid 控件類型的範例。
下列各節會定義 DataGrid 控制項類型所需的 UI 自動化樹狀結構、屬性、控制項模式和事件。 使用者介面自動化需求適用於所有數據格控件,無論是 Windows Presentation Foundation (WPF)、Win32 還是 Windows Forms。
必要的 UI 自動化樹狀結構
下表描述與數據格控件相關的UI自動化樹狀結構的控件檢視和內容檢視,並描述每個檢視中可包含的內容。 如需 UI 自動化樹狀結構的詳細資訊,請參閱 UI 自動化樹狀結構概觀。
UI 自動化樹狀目錄 - 控件檢視 | UI 自動化樹狀目錄 - 內容檢視 |
---|---|
DataGrid
|
DataGrid - DataItem (0 或更多;可以在階層中結構化) |
必要的UI自動化屬性
下表列出其值或定義與數據格控件特別相關的屬性。 如需UI自動化屬性的詳細資訊,請參閱 用戶端的UI自動化屬性。
房產 | 價值觀 | 註釋 |
---|---|---|
AutomationIdProperty | 請參閱備註。 | 這個屬性的值在應用程式中的所有控件中必須是唯一的。 |
BoundingRectangleProperty | 請參閱備註。 | 包含整個控制項的最外層矩形。 |
ClickablePointProperty | 請參閱備註。 | 如果有周框,則支援 。 如果周框內的每個點都無法點選,而且您執行特製化的點擊測試,則覆寫並提供可點選的點。 |
ControlTypeProperty | DataGrid | 此值與所有使用者介面架構的值相同。 |
IsContentElementProperty | 對 | 此屬性的值一律為 True。 這表示數據格控件必須一律位於使用者介面自動化樹狀結構的內容檢視中。 |
IsControlElementProperty | 對 | 此屬性的值一律為 True。 這表示資料網格控制項必須始終位於 UI 自動化樹狀結構中的控制項視圖。 |
IsKeyboardFocusableProperty | 請參閱備註。 | 如果控制項可接收鍵盤焦點,就必定支援此屬性。 |
LabeledByProperty | 請參閱備註。 | 如果有靜態文字標籤,則此屬性必須公開該控件的參考。 |
LocalizedControlTypeProperty | “資料網格” | 對應 DataGrid 控制項類型的本地化字串。 |
NameProperty | 請參閱備註。 | 數據格控件通常會從靜態文字標籤取得其 Name 屬性的值。 如果沒有靜態文字標籤,應用程式開發人員必須為屬性指派值 Name 。 屬性的值 Name 絕對不能是編輯控件的文字內容。 |
必要的使用者介面自動化控制模式
下表列出所有數據格控件必須支援的控制項模式。 如需控制樣式的詳細資訊,請參閱 UI 自動化控制樣式概觀。
控制件模式 | 支援 | 註釋 |
---|---|---|
IGridProvider | 是的 | 數據網格控制本身始終支援 Grid 控制模式,因為它包含布置在網格中的元數據專案。 |
IScrollProvider | 視情況而定 | 捲動數據網格線的能力取決於內容,以及滾動條是否存在。 |
ISelectionProvider | 視情況而定 | 選取數據格的能力取決於內容。 |
ITableProvider | 是的 | 數據格控件在其子樹內一律有標頭,因此必須支持數據表控件模式。 |
資料格容器中的數據項至少支援:
選取項目控制模式(如果資料格可選取)
捲動項目控制模式(如果資料網格可捲動)
網格項目控制模式
表格項目控制模式
必要的UI自動化事件
下表列出所有數據格控件必須支援的UI自動化事件。 如需事件的詳細資訊,請參閱 UI 自動化事件概觀。
UI 自動化事件 | 支援 | 註釋 |
---|---|---|
AutomationFocusChangedEvent | 為必填項目 | 沒有 |
BoundingRectangleProperty 屬性變更事件。 | 為必填項目 | 沒有 |
IsEnabledProperty 屬性變更事件。 | 為必填項目 | 沒有 |
IsOffscreenProperty 屬性變更事件。 | 為必填項目 | 沒有 |
LayoutInvalidatedEvent | 視情況而定 | 沒有 |
StructureChangedEvent | 為必填項目 | 沒有 |
CurrentViewProperty 屬性變更事件。 | 視情況而定 | 沒有 |
HorizontallyScrollableProperty 屬性變更事件。 | 視情況而定 | 如果控件支援 Scroll 模式,它必須支援這個事件。 |
HorizontalScrollPercentProperty 屬性變更事件。 | 視情況而定 | 如果控件支援 Scroll 模式,它必須支援這個事件。 |
HorizontalViewSizeProperty 屬性變更事件。 | 視情況而定 | 如果控件支援 Scroll 模式,它必須支援這個事件。 |
VerticalScrollPercentProperty 屬性變更事件。 | 視情況而定 | 如果控件支援 Scroll 模式,它必須支援這個事件。 |
VerticallyScrollableProperty 屬性變更事件。 | 視情況而定 | 如果控件支援 Scroll 模式,它必須支援這個事件。 |
VerticalViewSizeProperty 屬性變更事件。 | 視情況而定 | 如果控件支援 Scroll 模式,它必須支援這個事件。 |
InvalidatedEvent | 為必填項目 | 沒有 |
日期方格控件類型範例
下圖說明實作 DataGrid 控制項類型的清單檢視控件。
控件檢視和與清單檢視控件相關的UI自動化樹狀結構內容檢視如下所示。 每個自動化專案的控件模式會顯示在括弧中。
UI 自動化樹狀目錄 - 控件檢視 | UI 自動化樹狀目錄 - 內容檢視 |
---|---|
|
|
* 上一個範例顯示包含多個控件層級的 DataGrid。 Group (「Contoso」) 控制包含兩個 DataItem 控制(「應收帳款.doc」和「應付帳款.doc」)。 DataGrid/GridItem 配對與其他層級的配對是獨立的,互不相關。 Group 底下的 DataItem 控制項也可以公開為 ListItem 控制項類型,使其更清楚地呈現為可選取的物件,而不是簡單的數據元素。 這個範例不包含群組數據項的子專案。