UI オートメーションによる DataGrid コントロール型のサポート

メモメモ

このドキュメントは、System.Windows.Automation 名前空間で定義されているマネージ UI Automation クラスを使用する .NET Framework 開発者を対象としています。UI Automationに関する最新情報については、「Windows Automation API: UI Automation (Windows オートメーション API: UI オートメーション)」を参照してください。

ここでは、Microsoft UI Automationによる DataGrid コントロール型のサポートに関する情報を示します。 UI Automationでは、コントロール型とは、ControlType プロパティを使用するためにコントロールが満たす必要のある条件のセットです。 これらの条件には、UI Automation ツリー構造、UI Automationのプロパティ値、およびコントロール パターンに関する特定のガイドラインが含まれます。

DataGrid コントロール型を使用すると、列で表されるメタデータを含む項目を簡単に処理できます。 データ グリッド コントロールには、項目の行と、それらの項目に関する情報の列があります。 Microsoft Vista のエクスプローラーのリスト ビュー コントロールは、DataGrid コントロール型をサポートする 1 つの例です。

以下のセクションでは、DataGrid コントロール型に必要な UI Automation ツリー構造、プロパティ、コントロール パターン、およびイベントを定義します。 UI Automationの各要件は、Windows Presentation Foundation (WPF)、Win32、Windows Formsのいずれの場合でも、すべてのデータ グリッド コントロールに当てはまります。

このトピックは、次のセクションで構成されています。

  • 必須の UI オートメーション ツリー構造
  • 必須の UI オートメーション プロパティ
  • 必須の UI オートメーション コントロール パターン
  • 必須の UI オートメーション イベント
  • データ グリッド コントロール型の例
  • 関連トピック

必須の UI オートメーション ツリー構造

次の表では、データ グリッド コントロールに関連する UI Automation ツリーのコントロール ビューとコンテンツ ビューを示し、各ビューに格納できるものについて説明します。 UI Automation ツリーの詳細については、「UI オートメーション ツリーの概要」を参照してください。

UI Automation ツリー - コントロール ビュー

UI Automation ツリー - コンテンツ ビュー

DataGrid

  • Header (0、1、または 2)

    • HeaderItem (列または行の数)

  • DataItem (0 以上。階層構造になり得る)

DataGrid

  • DataItem (0 以上。階層構造になり得る)

必須の UI オートメーション プロパティ

次の表に、値または定義が特にデータ グリッド コントロールに関連するプロパティを示します。 UI Automation プロパティの詳細については、「クライアントの UI オートメーション プロパティ」を参照してください。

プロパティ

説明

AutomationIdProperty

説明を参照。

このプロパティの値は、アプリケーションのすべてのコントロールで一意にする必要があります。

BoundingRectangleProperty

説明を参照。

コントロール全体を包含する外側の四角形。

ClickablePointProperty

説明を参照。

外接する四角形が存在する場合はサポートされます。 外接する四角形の範囲内にクリック不可能な点が存在するときに特別なヒット テストを実行する場合は、クリック可能な点をオーバーライドして提供します。

ControlTypeProperty

DataGrid

この値は、すべての UI フレームワークで共通です。

IsContentElementProperty

True

このプロパティの値は常に True でなければなりません。 つまり、データ グリッド コントロールは常に UI Automation ツリーのコンテンツ ビュー内に存在する必要があります。

IsControlElementProperty

True

このプロパティの値は常に True でなければなりません。 つまり、データ グリッド コントロールは常に UI Automation ツリーのコントロール ビュー内に存在する必要があります。

IsKeyboardFocusableProperty

説明を参照。

コントロールがキーボード フォーカスを受け取ることができる場合は、このプロパティをサポートする必要があります。

LabeledByProperty

説明を参照。

静的テキスト ラベルが存在する場合、このプロパティは、該当するコントロールへの参照を公開する必要があります。

LocalizedControlTypeProperty

"データ グリッド"

DataGrid コントロール型に対応するローカライズされた文字列。

NameProperty

説明を参照。

通常、データ グリッド コントロールは、静的テキスト ラベルからその Name プロパティの値を取得します。 静的テキスト ラベルが存在しない場合、アプリケーションの開発者は Name プロパティの値を割り当てる必要があります。 Name プロパティの値は、エディット コントロールのテキスト コンテンツにすることはできません。

必須の UI オートメーション コントロール パターン

すべてのデータ グリッド コントロールでサポートする必要があるコントロール パターンの一覧を次の表に示します。 コントロール パターンの詳細については、「UI オートメーション コントロール パターンの概要」を参照してください。

コントロール パターン

サポート

説明

IGridProvider

データ グリッド コントロールが格納する項目は、グリッドに配置されるメタデータを含んでいるため、データ グリッド コントロール自身は常に Grid コントロール パターンをサポートします。

IScrollProvider

依存

データ グリッドをスクロールする機能は、コンテンツがどのようなものか、およびスクロール バーが存在するかどうかに依存します。

ISelectionProvider

依存

データ グリッドを選択する機能は、コンテンツがどのようなものかに依存します。

ITableProvider

データ グリッド コントロールのサブツリー内には常にヘッダーがあるため、Table コントロール パターンがサポートされる必要があります。

データ グリッド コンテナー内のデータ項目は、少なくとも次をサポートします。

  • 選択項目コントロール パターン (データ グリッドを選択できる場合)

  • スクロール項目コントロール パターン (データ グリッドをスクロールできる場合)

  • グリッド項目コントロール パターン

  • テーブル項目コントロール パターン

必須の UI オートメーション イベント

次の表は、すべてのデータ グリッド コントロールでサポートする必要のある UI Automation イベントの一覧です。 イベントの詳細については、「UI オートメーション イベントの概要」を参照してください。

UI Automation イベント

サポート

説明

AutomationFocusChangedEvent

必須

なし

BoundingRectangleProperty プロパティ変更イベント

必須

なし

IsEnabledProperty プロパティ変更イベント

必須

なし

IsOffscreenProperty プロパティ変更イベント

必須

なし

LayoutInvalidatedEvent

依存

なし

StructureChangedEvent

必須

なし

CurrentViewProperty プロパティ変更イベント

依存

なし

HorizontallyScrollableProperty プロパティ変更イベント

依存

コントロールで Scroll パターンをサポートする場合は、このイベントをサポートする必要があります。

HorizontalScrollPercentProperty プロパティ変更イベント。

依存

コントロールで Scroll パターンをサポートする場合は、このイベントをサポートする必要があります。

HorizontalViewSizeProperty プロパティ変更イベント。

依存

コントロールで Scroll パターンをサポートする場合は、このイベントをサポートする必要があります。

VerticalScrollPercentProperty プロパティ変更イベント。

依存

コントロールで Scroll パターンをサポートする場合は、このイベントをサポートする必要があります。

VerticallyScrollableProperty プロパティ変更イベント。

依存

コントロールで Scroll パターンをサポートする場合は、このイベントをサポートする必要があります。

VerticalViewSizeProperty プロパティ変更イベント。

依存

コントロールで Scroll パターンをサポートする場合は、このイベントをサポートする必要があります。

InvalidatedEvent

必須

なし

データ グリッド コントロール型の例

次の図は、DataGrid コントロール型を実装するリスト ビュー コントロールを示しています。

2 つのデータ項目を含むリスト ビュー コントロールのグラフィック

以下に、リスト ビュー コントロールに関連する UI Automation ツリーのコントロール ビューとコンテンツ ビューを示します。 各オートメーション要素のコントロール パターンをかっこで囲んで示します。

UI Automation ツリー - コントロール ビュー

UI Automation ツリー - コンテンツ ビュー

  • DataGrid (Table, Grid, Selection)

  • ヘッダー

    • HeaderItem "名前" (Invoke)

    • HeaderItem "更新日時" (Invoke)

    • HeaderItem "サイズ" (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") コントロールには、2 つの DataItem コントロール ("Accounts Receivable.doc" と "Accounts Payable.doc") が含まれています。 DataGrid と GridItem のペアは、別のレベルのペアに依存しません。 Group の下の DataItem コントロールは ListItem コントロール型としても公開でき、単純なデータ要素としてではなく選択できるオブジェクトとしてより明確に表示できます。 この例には、グループ化されたデータ項目のサブ要素は含まれていません。

参照

参照

DataGrid

概念

UI オートメーション コントロール型の概要

UI オートメーションの概要