DataGrid コントロールの種類

このトピックでは、DataGrid コントロールの種類に対する Microsoft UI オートメーション のサポートについて説明します。

DataGrid コントロール型を使用すると、ユーザーは列または行に表示されるデータ要素またはオートメーション要素を含む項目を簡単に操作できます。 データ グリッド コントロールでは、項目の行と、それらの項目に関する情報の列があります。 Windows Vista エクスプローラーのリスト ビュー コントロールは、DataGrid コントロールの種類をサポートする例です。

次のセクションでは、DataGrid コントロール型に必要なUI オートメーションツリー構造、プロパティ、コントロール パターン、およびイベントを定義します。 UI オートメーション要件は、UI フレームワーク/プラットフォームがコントロールの種類とコントロール パターンのサポートUI オートメーション統合するすべてのデータ グリッド コントロールに適用されます。

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

一般的なツリー構造

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

コントロール ビュー コンテンツ ビュー
  • DataGrid
    • Header (0、1、または 2)
      • HeaderItem (列または行の数)
    • DataItem (0 以上。階層内で構造化できます)
  • DataGrid
    • DataItem (0 以上。階層内で構造化できます)

 

関連するプロパティ

次の表に、値または定義が DataGrid コントロール型に特に関連するUI オートメーションプロパティの一覧を示します。 UI オートメーションプロパティの詳細については、「UI オートメーション要素からプロパティを取得する」を参照してください。

UI Automation のプロパティ Notes
UIA_AutomationIdPropertyId 「ノート」を参照してください。 このプロパティの値は、UI オートメーション ツリーの生ビュー内のすべてのピア要素間で一意である必要があります。
UIA_BoundingRectanglePropertyId 「ノート」を参照してください。 コントロール全体を格納する最も外側の四角形。
UIA_ClickablePointPropertyId 「ノート」を参照してください。 四角形領域が存在する場合にサポートされます。 外接する四角形内のすべてのポイントがクリック可能でなく、要素が特殊なヒット テストを実行する場合は、オーバーライドしてクリック可能なポイントを指定します。
UIA_ControlTypePropertyId DataGrid
UIA_IsContentElementPropertyId true このプロパティの値は常に TRUE である必要があります。 つまり、データ グリッド コントロールが常に UI オートメーション ツリーのコンテンツ ビューに存在している必要があります。
UIA_IsControlElementPropertyId true このプロパティの値は常に TRUE である必要があります。 つまり、データ グリッド コントロールは常に、UI オートメーション ツリーのコントロール ビューに含める必要があります。
UIA_IsKeyboardFocusablePropertyId 「ノート」を参照してください。 コントロールがキーボード フォーカスを受け取ることができる場合は、このプロパティをサポートする必要があります。
UIA_LabeledByPropertyId 「ノート」を参照してください。 静的テキスト ラベルがある場合、このプロパティは、そのコントロールへの参照を公開する必要があります。
UIA_LocalizedControlTypePropertyId 「ノート」を参照してください。 DataGrid コントロール型に対応するローカライズされた文字列。 既定値は、en-US または英語 (米国) の "データ グリッド" です。
UIA_NamePropertyId 「ノート」を参照してください。 通常、データ グリッド コントロールは、静的テキスト ラベルから Name プロパティの値を取得します。 静的なテキスト ラベルがない場合、アプリケーション開発者は Name プロパティの に値を割り当てる必要があります。 Name プロパティの値は、編集コントロールのテキストコンテンツにすることはできません。

 

必須のコントロール パターン

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

コントロール パターン サポート Notes
IGridProvider 必須 データ グリッド コントロール自体は常に Grid コントロール パターンをサポートします。これは、そのコントロールに含まれる項目にグリッドにレイアウトされたメタデータがあるためです。
IScrollProvider 依存 データ グリッドをスクロールする機能はコンテンツ、およびスクロール バーが存在するかどうかによって異なります。
ISelectionProvider 依存 データ グリッドを選択する機能は、コンテンツに依存します。
ITableProvider 依存 ヘッダーを持つデータ グリッド コントロールは、 Table コントロール パターンをサポートする必要があります。

 

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

  • SelectionItem コントロール パターン (データ グリッドが選択可能な場合)
  • ScrollItem コントロール パターン (データ グリッドがスクロール可能な場合)
  • GridItem コントロール パターン
  • TableItem コントロール パターン (データ グリッドにヘッダーがある場合)

必須イベント

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

UI オートメーション イベント Notes
UIA_AutomationFocusChangedEventId
プロパティUIA_BoundingRectanglePropertyId 変更されたイベントです。
プロパティUIA_IsEnabledPropertyId 変更されたイベントです。 コントロールが IsEnabled プロパティをサポートしている場合は、このイベントをサポートする必要があります。
プロパティUIA_IsOffscreenPropertyId 変更されたイベントです。 コントロールが IsOffscreen プロパティをサポートしている場合は、このイベントをサポートする必要があります。
UIA_LayoutInvalidatedEventId
UIA_StructureChangedEventId
プロパティ変更イベントUIA_MultipleViewCurrentViewPropertyId します。 コントロールが MultipleView コントロール パターンの CurrentView プロパティをサポートしている場合は、このイベントをサポートする必要があります。
プロパティ変更イベントUIA_ScrollHorizontallyScrollablePropertyId します。 コントロールが Scroll コントロール パターンをサポートしている場合は、このイベントをサポートする必要があります。
プロパティ変更イベントUIA_ScrollHorizontalScrollPercentPropertyId します。 コントロールが Scroll コントロール パターンをサポートしている場合は、このイベントをサポートする必要があります。
プロパティUIA_ScrollHorizontalViewSizePropertyId 変更されたイベントです。 コントロールが Scroll コントロール パターンをサポートしている場合は、このイベントをサポートする必要があります。
プロパティ変更イベントUIA_ScrollVerticalScrollPercentPropertyId します。 コントロールが Scroll コントロール パターンをサポートしている場合は、このイベントをサポートする必要があります。
プロパティUIA_ScrollVerticallyScrollablePropertyId 変更されたイベントです。 コントロールが Scroll コントロール パターンをサポートしている場合は、このイベントをサポートする必要があります。
プロパティUIA_ScrollVerticalViewSizePropertyId 変更されたイベントです。 コントロールが Scroll コントロール パターンをサポートしている場合は、このイベントをサポートする必要があります。
UIA_Selection_InvalidatedEventId

 

DataGrid コントロールの種類の例

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

データ グリッド コントロールの種類を使用したリスト ビュー コントロールのスクリーン ショット

リスト ビュー コントロールに関連するUI オートメーション ツリーのコントロール ビューとコンテンツ ビューを次に示します。 オートメーションの各要素のコントロール パターンが、かっこ内に示されています。

UI オートメーション ツリー - コントロール ビュー UI オートメーション ツリー - コンテンツ ビュー
DataGrid (Sort、Table、Selection、Grid)
  • ヘッダー
    • 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*)

 

*前の例は、複数のレベルのコントロールを含むデータ グリッドを示しています。 Group ("Contoso") コントロールには、2 つの DataItem コントロール ("Accounts Receivable.doc" と "Accounts Payable.doc") が含まれています。 DataGrid/GridItem ペアは、別のレベルのペアとは独立しています。 Group の下の DataItem コントロールは、ListItem コントロール型として公開することもできます。これにより、単純なデータ要素としてではなく、選択可能なオブジェクトとしてより明確に表示できます。 この例では、グループ化されたデータ項目のサブ要素は含まれません。 複数レベルのコントロールの別の例については、 DataItem コントロールの種類に関するページを参照してください。

概念

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

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