DataGrid 컨트롤 형식

이 항목에서는 DataGrid 컨트롤 형식에 대한 Microsoft UI 자동화 지원에 대한 정보를 제공합니다.

DataGrid 컨트롤 형식을 사용하면 사용자가 열 또는 행에 표시되는 데이터 또는 자동화 요소가 포함된 항목으로 쉽게 작업할 수 있습니다. 데이터 표 컨트롤에는 항목의 행과 항목에 대한 정보 열이 있습니다. Windows Vista Explorer 목록 보기 컨트롤은 DataGrid 컨트롤 형식을 지원하는 예제입니다.

다음 섹션에서는 DataGrid 컨트롤 형식에 필요한 UI 자동화 트리 구조, 속성, 컨트롤 패턴 및 이벤트를 정의합니다. UI 자동화 요구 사항은 UI 프레임워크/플랫폼이 컨트롤 형식 및 컨트롤 패턴에 대한 UI 자동화 지원을 통합하는 모든 데이터 그리드 컨트롤에 적용됩니다.

이 항목에는 다음과 같은 섹션이 포함되어 있습니다.

일반적인 트리 구조

다음 표에서는 데이터 그리드 컨트롤과 관련된 UI 자동화 트리의 일반적인 컨트롤 및 콘텐츠 뷰를 설명하고 각 보기에 포함될 수 있는 내용을 설명합니다. UI 자동화 트리에 대한 자세한 내용은 UI 자동화 트리 개요를 참조하세요.

컨트롤 뷰 콘텐츠 뷰
  • DataGrid
    • Header(0, 1 또는 1개)
      • HeaderItem(행 또는 열 개수)
    • DataItem(0 이상, 계층 구조화 가능)
  • DataGrid
    • DataItem(0 이상, 계층 구조화 가능)

 

관련 속성

다음 표에서는 값 또는 정의가 DataGrid 컨트롤 형식과 특히 관련된 UI 자동화 속성을 나열합니다. UI 자동화 속성에 대한 자세한 내용은 UI 자동화 요소에서 속성 검색을 참조하세요.

UI 자동화 속성 참고
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를 참조하세요.

컨트롤 패턴 지원 메모
IGridProvider 필수 데이터 그리드 컨트롤 자체는 포함된 항목에 그리드에 배치된 메타데이터가 있기 때문에 항상 Grid 컨트롤 패턴을 지원합니다.
IScrollProvider 개체 데이터 표를 스크롤할 수 있는 기능은 내용 및 스크롤 막대가 있는지 여부에 따라 다릅니다.
ISelectionProvider 개체 데이터 표를 선택할 수 있는 기능은 내용에 따라 다릅니다.
ITableProvider 개체 헤더가 있는 데이터 그리드 컨트롤은 테이블 컨트롤 패턴을 지원해야 합니다.

 

데이터 표 컨테이너 내의 데이터 항목은 최소한 다음과 같은 사항을 지원합니다.

  • SelectionItem 컨트롤 패턴(데이터 그리드를 선택할 수 있는 경우)
  • ScrollItem 컨트롤 패턴(데이터 그리드를 스크롤할 수 있는 경우)
  • GridItem 컨트롤 패턴
  • TableItem 컨트롤 패턴(데이터 그리드에 헤더가 있는 경우)

필요한 이벤트

다음 표에서는 데이터 그리드 컨트롤이 지원하는 데 필요한 UI 자동화 이벤트를 나열합니다. 이벤트에 대한 자세한 내용은 UI Automation Events Overview를 참조하세요.

UI 자동화 이벤트 참고
UIA_AutomationFocusChangedEventId
UIA_BoundingRectanglePropertyId 속성 변경 이벤트입니다.
UIA_IsEnabledPropertyId 속성 변경 이벤트입니다. 컨트롤이 IsEnabled 속성을 지원하는 경우 이 이벤트를 지원해야 합니다.
속성 변경 이벤트를 UIA_IsOffscreenPropertyId. 컨트롤이 IsOffscreen 속성을 지원하는 경우 이 이벤트를 지원해야 합니다.
UIA_LayoutInvalidatedEventId
UIA_StructureChangedEventId
속성 변경 이벤트를 UIA_MultipleViewCurrentViewPropertyId. 컨트롤이 MultipleView 컨트롤 패턴의 CurrentView 속성을 지원하는 경우 이 이벤트를 지원해야 합니다.
속성 변경 이벤트를 UIA_ScrollHorizontallyScrollablePropertyId. 컨트롤이 스크롤 컨트롤 패턴을 지원하는 경우 이 이벤트를 지원해야 합니다.
속성 변경 이벤트를 UIA_ScrollHorizontalScrollPercentPropertyId. 컨트롤이 스크롤 컨트롤 패턴을 지원하는 경우 이 이벤트를 지원해야 합니다.
속성 변경 이벤트를 UIA_ScrollHorizontalViewSizePropertyId. 컨트롤이 스크롤 컨트롤 패턴을 지원하는 경우 이 이벤트를 지원해야 합니다.
속성 변경 이벤트를 UIA_ScrollVerticalScrollPercentPropertyId. 컨트롤이 스크롤 컨트롤 패턴을 지원하는 경우 이 이벤트를 지원해야 합니다.
속성 변경 이벤트를 UIA_ScrollVerticallyScrollablePropertyId. 컨트롤이 스크롤 컨트롤 패턴을 지원하는 경우 이 이벤트를 지원해야 합니다.
속성 변경 이벤트를 UIA_ScrollVerticalViewSizePropertyId. 컨트롤이 스크롤 컨트롤 패턴을 지원하는 경우 이 이벤트를 지원해야 합니다.
UIA_Selection_InvalidatedEventId

 

DataGrid 컨트롤 형식 예제

다음 이미지는 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*)

 

*앞의 예제에서는 여러 수준의 컨트롤이 포함된 데이터 그리드를 보여 줍니다. 그룹("Contoso") 컨트롤에는 두 개의 DataItem 컨트롤("계정 Receivable.doc" 및 "계정 Payable.doc")이 포함됩니다. DataGrid/GridItem 쌍은 다른 수준의 쌍과 독립적입니다. 또한 그룹 아래의 DataItem 컨트롤을 ListItem 컨트롤 형식으로 노출하여 간단한 데이터 요소가 아닌 선택 가능한 개체로 더 명확하게 표시할 수 있습니다. 이 예제에서는 그룹화된 데이터 항목의 하위 요소는 포함되지 않습니다. 여러 수준의 컨트롤에 대한 또 다른 예제는 DataItem 컨트롤 형식을 참조하세요.

개념

UI 자동화 컨트롤 형식 개요

UI 자동화 개요