DataItem 컨트롤 형식에 대한 UI 자동화 지원
참고 항목
이 설명서는 System.Windows.Automation 네임스페이스에 정의된 관리되는 UI 자동화 클래스를 사용하려는 .NET Framework 개발자를 위한 것입니다. UI 자동화에 대한 최신 정보는 Windows 자동화 API: UI 자동화를 참조하세요.
이 항목에서는 DataItem 컨트롤 형식에 대한 Microsoft UI 자동화 지원에 대한 정보를 제공합니다. UI 자동화에서 컨트롤 형식은 컨트롤이 ControlTypeProperty 속성을 사용하기 위해 충족해야 하는 조건 집합입니다. 조건에는 UI 자동화 트리 구조, UI 자동화 속성 값, 컨트롤 패턴에 대한 특정 지침이 포함됩니다.
연락처 목록에 있는 항목은 데이터 항목 컨트롤의 예입니다. 데이터 항목 컨트롤에는 최종 사용자에게 유용한 정보가 들어있습니다. 이 항목에는 보다 다양한 정보가 들어 있기 때문에 단순 목록 항목보다 복잡합니다.
다음 섹션에서는 DataItem 컨트롤 형식에 필요한 UI 자동화 트리 구조, 속성, 컨트롤 패턴 및 이벤트를 정의합니다. UI 자동화 요구 사항은 WPF(Windows Presentation Foundation), Win32 또는 Windows Forms 여부에 관계없이 모든 데이터 항목 컨트롤에 적용됩니다.
필요한 UI 자동화 트리 구조
다음 표에서는 데이터 항목 컨트롤과 관련된 UI 자동화 트리의 컨트롤 보기 및 콘텐츠 보기를 설명하고 각 보기에 포함될 수 있는 내용을 설명합니다. UI 자동화 트리에 대한 자세한 내용은 UI 자동화 트리 개요를 참조하세요.
UI 자동화 트리 - 컨트롤 보기 | UI 자동화 트리 - 콘텐츠 보기 |
---|---|
DataItem - 경우에 따라 다름(0개 이상, 계층 구조로 구조화할 수 있음) |
DataItem - 경우에 따라 다름(0개 이상, 계층 구조로 구조화할 수 있음) |
데이터 표의 데이터 항목 요소는 데이터 항목의 다른 레이어 또는 특정 표 요소(예: 텍스트, 이미지 또는 편집 컨트롤)를 비롯한 다양한 개체를 호스트할 수 있습니다. 데이터 항목 요소에 특정 개체 역할이 있으면, 이 요소는 특정 컨트롤 형식으로 노출되어야 합니다. 예를 들어, 표에 있는 선택 가능한 데이터 항목의 경우 ListItem 컨트롤 형식으로 노출되어야 합니다.
필요한 UI 자동화 속성
다음 표에서는 값 또는 정의가 데이터 항목 컨트롤과 특별히 관련된 속성을 나열하여 보여 줍니다. UI 자동화 속성에 대한 자세한 내용은 클라이언트용 UI 자동화 속성을 참조하세요.
속성 | 값 | 주의 |
---|---|---|
AutomationIdProperty | 메모를 참조하세요. | 이 속성의 값은 애플리케이션의 모든 컨트롤에서 고유해야 합니다. |
BoundingRectangleProperty | 메모를 참조하세요. | 전체 컨트롤이 포함된 가장 바깥쪽 사각형입니다. |
ClickablePointProperty | 메모를 참조하세요. | 경계 사각형이 없는 경우 지원됩니다. 경계 사각형 내의 일부 지점이 클릭 가능하지 않으며 특수화된 적중 테스트를 수행하는 경우 클릭 가능한 지점을 재정의하고 제공하세요. |
ControlTypeProperty | DataItem | 이 값은 모든 UI 프레임워크에 대해 동일합니다. |
IsContentElementProperty | True | 데이터 항목 컨트롤이 항상 콘텐츠여야 합니다. |
IsControlElementProperty | True | 데이터 항목 컨트롤이 항상 컨트롤이어야 합니다. |
IsKeyboardFocusableProperty | 메모를 참조하세요. | 컨트롤이 키보드 포커스를 받을 수 있으면 해당 컨트롤은 이 속성을 지원해야 합니다. |
ItemStatusProperty | 메모를 참조하세요. | 컨트롤에 동적으로 업데이트되는 상태가 포함되어 있으면, 이 속성을 지원해야 요소의 상태가 변경될 때 보조 기술이 업데이트를 수신할 수 있습니다. |
ItemTypeProperty | 메모를 참조하세요. | 항목이 나타내는 내부 개체를 최종 사용자에게 전달하는 문자열 값입니다. 이 문자열의 예로는 "Media File" 또는 "Contact"가 있습니다. |
LabeledByProperty | Null |
데이터 항목 컨트롤에는 정적 텍스트 레이블이 없습니다. |
LocalizedControlTypeProperty | "data item" | DataItem 컨트롤 형식에 해당하는 지역화된 문자열입니다. |
NameProperty | 메모를 참조하세요. | 데이터 항목 컨트롤에는 사용자가 항목에 대해 가장 의미 있는 식별자로 연결할 사항과 관련된 기본 텍스트 요소가 항상 포함됩니다. |
필요한 UI 자동화 컨트롤 패턴
다음 표에는 모든 데이터 항목 컨트롤에서 지원해야 하는 Microsoft UI 자동화 컨트롤 패턴이 나와 있습니다. 컨트롤 패턴에 대한 자세한 내용은 UI Automation Control Patterns Overview를 참조하세요.
컨트롤 패턴 | 지원 | 주의 |
---|---|---|
IExpandCollapseProvider | 개체 | 데이터 항목을 확장하거나 축소하여 정보를 표시하고 숨길 수 있는 경우 Expand Collapse 패턴이 지원되어야 합니다. |
IGridItemProvider | 개체 | 항목 간 공간을 탐색할 수 있는 컨테이너 내에서 데이터 항목의 컬렉션을 사용할 수 있으면 데이터 항목이 Grid Item 패턴을 지원합니다. |
IScrollItemProvider | 개체 | 모든 데이터 항목은 화면에 맞출 수 있는 것보다 많은 항목이 데이터 컨테이너에 들어 있을 때 Scroll Item 패턴을 통해 스크롤하여 볼 수 있는 기능을 지원합니다. |
ISelectionItemProvider | 예 | 항목이 선택될 때 이를 나타내려면 모든 데이터 항목이 Selection Item 패턴을 지원해야 합니다. |
ITableItemProvider | 개체 | 데이터 항목이 Data Grid 컨트롤 형식 내에 포함되어 있으면 이 패턴을 지원합니다. |
IToggleProvider | 개체 | 데이터 항목에 순환될 수 있는 상태가 포함된 경우. |
IValueProvider | 개체 | 데이터 항목의 기본 텍스트를 편집할 수 있는 경우 Value 패턴이 지원되어야 합니다. |
긴 목록에서 데이터 항목 작업
대부분 긴 목록은 성능 향상에 도움을 주기 위해 UI 프레임워크 내에서 가상화된 데이터입니다. 이런 이유로, UI 자동화 클라이언트는 컨테이너의 다른 항목에서와 같은 방법으로 전체 트리의 내용을 수집하기 위해 UI 자동화 쿼리 기능을 사용할 수 없습니다. 클라이언트는 데이터 항목에서 전체 정보 집합에 액세스하기 전에 항목을 스크롤하여 볼 수 있도록 해야 합니다(또는 컨트롤을 확장하여 모든 중요 옵션 표시).
데이터 항목에 대한 UI 자동화 요소에서 SetFocus
를 호출하면 Microsoft Windows 탐색기 사례가 성공적으로 반환되고 포커스가 데이터 항목 하위 트리 내에서 편집으로 설정됩니다.
필요한 UI 자동화 이벤트
다음 표에는 모든 데이터 항목 컨트롤에서 지원해야 하는 UI 자동화 이벤트가 나열되어 있습니다. 이벤트에 대한 자세한 내용은 UI Automation Events Overview를 참조하세요.
UI 자동화 이벤트 | 지원 | 주의 |
---|---|---|
AutomationFocusChangedEvent | Required | None |
BoundingRectangleProperty 속성 변경 이벤트. | Required | None |
IsEnabledProperty 속성 변경 이벤트. | Required | None |
IsOffscreenProperty 속성 변경 이벤트. | Required | None |
NameProperty 속성 변경 이벤트. | Required | None |
StructureChangedEvent | Required | None |
InvokedEvent | 개체 | None |
ExpandCollapseStateProperty 속성 변경 이벤트. | 개체 | None |
ElementAddedToSelectionEvent | Required | None |
ElementRemovedFromSelectionEvent | Required | None |
ElementSelectedEvent | Required | None |
ToggleStateProperty 속성 변경 이벤트. | 개체 | None |
ValueProperty 속성 변경 이벤트. | 개체 | None |
DataItem 컨트롤 형식 예제
다음 이미지는 열에 대한 다양한 정보를 지원하는 목록 뷰 컨트롤의 DataItem 컨트롤 형식을 보여 줍니다.
데이터 항목 컨트롤과 관련된 UI 자동화 트리의 컨트롤 보기 및 콘텐츠 보기는 아래에 표시됩니다. 각 자동화 요소에 대한 컨트롤 패턴은 괄호 안에 표시됩니다. Group "Contoso"는 Data Grid 호스트 컨트롤 표의 일부이기도 합니다.
UI 자동화 트리 - 컨트롤 보기 | UI 자동화 트리 - 콘텐츠 보기 |
---|---|
- Group "Contoso" (Table, Grid) - DataItem "Accounts Receivable.doc" (TableItem, GridItem, SelectionItem, Invoke) - Image "Accounts Receivable.doc" - Edit "Name" (TableItem, GridItem, Value "Accounts Receivable.doc") - Edit "Date modified" (TableItem, GridItem, Value "8/25/2006 3:29 PM") - Edit "Size" (GridItem, TableItem, Value "11.0 KB) - DataItem "Accounts Payable.doc" (TableItem, GridItem, SelectionItem, Invoke) - ... |
- Group "Contoso" (Table, Grid) - DataItem "Accounts Receivable.doc" (TableItem, GridItem, SelectionItem, Invoke) - Image "Accounts Receivable.doc" - Edit "Name" (TableItem, GridItem, Value "Accounts Receivable.doc") - Edit "Date modified" (TableItem, GridItem, Value "8/25/2006 3:29 PM") - Edit "Size" (GridItem, TableItem, Value "11.0 KB) - DataItem "Accounts Payable.doc" (TableItem, GridItem, SelectionItem, Invoke) - … |
표가 선택 가능한 항목의 목록을 나타내는 경우, 해당 UI 요소는 DataItem 컨트롤 형식이 아닌 ListItem 컨트롤 형식을 사용하여 노출할 수 있습니다. 앞의 예에서, Group("Contoso") 아래의 DataItem 요소("Accounts Receivable.doc" 및 "Accounts Payable.doc")는 SelectionItem 컨트롤 패턴을 이미 지원하기 때문에 ListItem 컨트롤 형식으로 노출하여 개선할 수 있습니다.