備註
本檔適用於想要使用 System.Windows.Automation 命名空間中定義的受控UI自動化類別的 .NET Framework 開發人員。 如需 UI 自動化的最新資訊,請參閱 Windows 自動化 API:使用者介面自動化。
本主題介紹實作 IGridProvider的指導方針和慣例,包括屬性、方法和事件的相關信息。 其他參考的連結會列在概觀結尾。
控件 GridPattern 模式是用來支援做為子專案集合容器的控件。 這個元素的子元素必須實現 IGridItemProvider,並組織在可以透過行和列進行遍歷的二維邏輯座標系統中。 如需實作此控制項模式的控制項範例,請參閱 UI 自動化用戶端的控制項模式對應。
實作指導方針和慣例
實作 Grid 控制項模式時,請注意下列指導方針和慣例:
網格座標從零開始計算,左上角(或依地區設定為右上角)的座標為(0,0)。
如果儲存格是空的,仍必須傳回UI Automation元素,才能支援該儲存格的 ContainingGrid 屬性。 當方格中的子元素配置類似於不完全的陣列時,就可能發生這種情況(請參閱下面的範例)。
具有空座標的網格控制項範例
如果從邏輯上被視為是網格,那麼即使是單一專案的網格仍然需要實作 IGridProvider。 方格中的子項目數目不重要。
根據提供者的實作方式,隱藏的列和行可能會載入至 UI 自動化樹中,因此會反映在 RowCount 和 ColumnCount 屬性中。 如果尚未載入隱藏的數據列和數據行,則不應該計算它們。
IGridProvider 不會啟用網格的活躍操作;必須實作 ITransformProvider 才能啟用這項功能。
使用StructureChangedEventHandler偵測網格的結構或版面配置變更,例如已新增、移除或合併的單元格。
使用AutomationFocusChangedEventHandler來追蹤網格中的項目或儲存格的遍歷。
IGridProvider 的必要成員
實作 IGridProvider 介面需要下列屬性和方法。
| 必要成員 | 類型 | 註釋 |
|---|---|---|
| RowCount | 房產 | 沒有 |
| ColumnCount | 房產 | 沒有 |
| GetItem | 方法 | 沒有 |
此控制件模式沒有相關聯的事件。
例外狀況
提供者必須擲回下列例外狀況。
| 例外狀況類型 | 狀況 |
|---|---|
| ArgumentOutOfRangeException | GetItem - 如果所要求的資料列座標大於 RowCount ,或資料行座標大於 ColumnCount。 |
| ArgumentOutOfRangeException | GetItem - 如果所要求的數據列或數據行座標小於零。 |