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

Note

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

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

DataGrid コントロール型により、列で表されるメタデータを含む項目をユーザーが簡単に扱うことができます。 データ グリッド コントロールでは、項目の行と、それらの項目に関する情報の列があります。 Microsoft Vista Explorer のリスト ビュー コントロールは、DataGrid コントロール型をサポートする例です。

以降のセクションでは、DataGrid コントロール型に必要な UI オートメーション ツリーの構造、プロパティ、コントロール パターン、イベントを定義します。 この UI オートメーションの要件は、Windows Presentation Foundation (WPF)、Win32、または Windows フォームのいずれにおいても、すべてのデータ グリッド コントロールに適用されます。

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

次の表に、データ グリッド コントロールに関連する UI オートメーション ツリーのコントロール ビューとコンテンツ ビューを示し、それぞれのビューに含めることができる内容について説明します。 UI オートメーション ツリーの詳細については、「UI オートメーション ツリーの概要」を参照してください。

UI オートメーション ツリー - コントロール ビュー UI オートメーション ツリー - コンテンツ ビュー
DataGrid

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

    • HeaderItem (列または行の数)
  • DataItem (0 以上。階層で構造化できます)
DataGrid

- DataItem (0 以上。階層で構造化できます)

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

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

プロパティ Notes
AutomationIdProperty 「ノート」を参照してください。 このプロパティの値は、アプリケーション内のすべてのコントロールで一意である必要があります。
BoundingRectangleProperty 「ノート」を参照してください。 コントロール全体を格納する最も外側の四角形。
ClickablePointProperty 「ノート」を参照してください。 四角形領域が存在する場合にサポートされます。 四角形領域内にクリック不可能な点が存在し、特別なヒット テストを実行する場合は、オーバーライドしてクリック可能な点を提供します。
ControlTypeProperty DataGrid この値は、すべての UI フレームワークで同じです。
IsContentElementProperty このプロパティの値は、常に True にする必要があります。 つまり、データ グリッド コントロールが常に UI オートメーション ツリーのコンテンツ ビューに存在している必要があります。
IsControlElementProperty このプロパティの値は、常に True にする必要があります。 つまり、データ グリッド コントロールが常に UI オートメーション ツリーのコントロール ビューに存在している必要があります。
IsKeyboardFocusableProperty 「ノート」を参照してください。 コントロールがキーボード フォーカスを受け取ることができる場合は、このプロパティをサポートする必要があります。
LabeledByProperty 「ノート」を参照してください。 静的なテキスト ラベルがある場合、このプロパティは対象のコントロールへの参照を公開する必要があります。
LocalizedControlTypeProperty "データ グリッド" DataGrid コントロール型に対応するローカライズされた文字列。
NameProperty 「ノート」を参照してください。 データ グリッド コントロールは、通常、静的テキスト ラベルから Name プロパティの列を取得します。 静的なテキスト ラベルがない場合は、アプリケーション開発者が Name のプロパティ値を割り当てる必要があります。 Name プロパティの値が、編集コントロールのテキストの内容になることは決してありません。

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

次の表に、すべてのデータ グリッド コントロールでサポートされなければならないコントロール パターンを示します。 コントロール パターンについて詳しくは、「 UI Automation Control Patterns Overview」をご覧ください。

コントロール パターン サポート Notes
IGridProvider はい データ グリッド コントロール自体は、メタデータを格納する項目がグリッドに配置されるため、常に、グリッド コントロール パターンをサポートします。
IScrollProvider 依存 データ グリッドをスクロールする機能はコンテンツ、およびスクロール バーが存在するかどうかによって異なります。
ISelectionProvider 依存 データ グリッドを選択する機能は、コンテンツに依存します。
ITableProvider はい データ グリッド コントロールはサブツリー内に常にヘッダーがあるため、Table コントロール パターンがサポートされる必要があります。

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

  • 選択項目コントロール パターン (データ グリッドが選択可能な場合)

  • スクロール項目コントロール パターン (データ グリッドがスクロール可能な場合)

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

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

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

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

UI オートメーション イベント サポート Notes
AutomationFocusChangedEvent 必須 なし
BoundingRectangleProperty プロパティ変更イベント。 必須 なし
IsEnabledProperty プロパティ変更イベント。 必須 なし
IsOffscreenProperty プロパティ変更イベント。 必須 なし
LayoutInvalidatedEvent 依存 なし
StructureChangedEvent 必須 なし
CurrentViewProperty プロパティ変更イベント。 依存 なし
HorizontallyScrollableProperty プロパティ変更イベント。 依存 コントロールで Scroll パターンをサポートする場合は、このイベントをサポートする必要があります。
HorizontalScrollPercentProperty プロパティ変更イベント。 依存 コントロールで Scroll パターンをサポートする場合は、このイベントをサポートする必要があります。
HorizontalViewSizeProperty プロパティ変更イベント。 依存 コントロールで Scroll パターンをサポートする場合は、このイベントをサポートする必要があります。
VerticalScrollPercentProperty プロパティ変更イベント。 依存 コントロールで Scroll パターンをサポートする場合は、このイベントをサポートする必要があります。
VerticallyScrollableProperty プロパティ変更イベント。 依存 コントロールで Scroll パターンをサポートする場合は、このイベントをサポートする必要があります。
VerticalViewSizeProperty プロパティ変更イベント。 依存 コントロールで Scroll パターンをサポートする場合は、このイベントをサポートする必要があります。
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 が示されています。 グループ ("Contoso") のコントロールには、2 つのDataItem コントロール ("Accounts Receivable.doc" および "Accounts Payable.doc") が含まれています。 DataGrid と GridItem ペアは、他のレベルのペアから独立しています。 グループの下にある DataItem コントロールは、ListItem コントロール型として公開することもでき、単純なデータ要素としてではなく、選択可能オブジェクトとして、より明確に提示することができます。 この例では、グループ化されたデータ項目のサブ要素は含まれません。

関連項目