x:Array 태그 확장

태그 확장을 통해 XAML의 개체 배열에 대한 일반적인 지원을 제공합니다. 이는 [MS-XAML]의 x:ArrayExtension XAML 형식에 해당합니다.

XAML 개체 요소 사용

<x:Array Type="typeName">
  arrayContents
</x:Array>

XAML 값

설명
typeName x:Array가 포함할 형식의 이름입니다. typeName은 XAML 형식 정의를 포함하는 XAML 네임스페이스에 대한 접두사일 수 있으며, 그런 경우가 많습니다.
arrayContents 내장 ArrayExtension.Items 속성에 할당된 항목 콘텐츠입니다. 일반적으로 이러한 항목은 x:Array 여는 태그와 닫는 태그 내에 포함된 하나 이상의 개체 요소로 지정됩니다. 여기에 지정된 개체는 typeName에 지정된 XAML 형식에 할당할 수 있어야 합니다.

설명

Type은 모든 x:Array 개체 요소에 필요한 특성입니다. Type 매개 변수 값은 x:Type 태그 확장을 사용할 필요가 없습니다. 형식의 짧은 이름은 문자열로 지정할 수 있는 XAML 형식입니다.

.NET XAML Services 구현에서 입력 XAML 형식과 생성된 배열의 출력 CLR Type 간의 관계는 태그 확장에 대한 서비스 컨텍스트의 영향을 받습니다. 출력 Type은 XAML 스키마 컨텍스트 및 컨텍스트가 제공하는 IXamlTypeResolver 서비스를 기준으로 필요한 XamlType을 조회한 이후 입력 XAML 유형의 UnderlyingType입니다.

처리되면 배열 내용이 ArrayExtension.Items 내장 속성에 할당됩니다. ArrayExtension 구현에서 이는 ArrayExtension.Items로 표현됩니다.

.NET XAML 서비스 구현에서 이 태그 확장에 대한 처리는 ArrayExtension 클래스를 통해 정의됩니다. ArrayExtension은 봉인되지 않으며 사용자 지정 배열 유형에 대한 태그 확장 구현의 기반으로 사용할 수 있습니다.

x:Array는 XAML의 일반 언어 확장성에 더 적합합니다. 그러나 x:Array는 XAML 지원 컬렉션을 구조화된 속성 콘텐츠로 사용하는 특정 속성의 XAML 값을 지정하는 데 유용할 수도 있습니다. 예를 들어 x:Array를 사용하는 IEnumerable 속성의 내용을 지정할 수 있습니다.

x:Array은 태그 확장입니다. 태그 확장은 특성 값을 리터럴 값 또는 처리기 이름이 아닌 다른 값이 되도록 이스케이프해야 하는 요구 사항이 있는 경우 일반적으로 구현되며 이러한 요구 사항은 특정 형식 또는 속성에 형식 변환기를 배치하는 것보다 더 포괄적입니다. x:Array는 대체 특성 값 처리를 제공하는 대신 x:Array가 내부 텍스트 콘텐츠의 대체 처리를 제공하기 때문에 부분적으로 해당 규칙의 예외입니다. 이 동작을 사용하면 기존 콘텐츠 모델에서 지원하지 않을 수 있는 형식을 배열로 그룹화하고 나중에 코드 숨김에서 명명된 배열에 액세스하여 참조할 수 있습니다. Array 메서드를 호출하여 개별 배열 항목을 가져올 수 있습니다.

XAML의 모든 태그 확장은 특성 구문에 중괄호({,})를 사용하며, 여기서 특성 구문은 XAML 프로세서가 태그 확장이 특성 값을 처리해야 함을 인식하는 데 사용하는 규칙입니다. 일반적인 태그 확장에 관한 자세한 내용은 XAML을 위한 형식 변환기 및 태그 확장을 참조하세요.

XAML 2009에서는 x:Array가 태그 확장 대신 언어 기본 형식으로 정의됩니다. 자세한 내용은 공용 XAML 언어 기본 형식에 대한 기본 제공 형식을 참조하세요.

WPF 사용 정보

일반적으로 x:Array를 채우는 개체 요소는 WPF XAML 네임스페이스에 있는 요소가 아니며 기본이 아닌 XAML 네임스페이스에 대한 접두사 매핑이 필요합니다.

예를 들어 다음은 배열 수준에서 sys 접두사(및 x)가 정의되어 있는 두 문자열의 간단한 배열입니다.

<x:Array Type="sys:String"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sys="clr-namespace:System;assembly=mscorlib">
  <sys:String>Hello</sys:String>
  <sys:String>World</sys:String>
</x:Array>

배열 요소로 사용되는 사용자 지정 형식의 경우 클래스는 XAML에서 개체 요소로 인스턴스화하기 위한 요구 사항도 지원해야 합니다. 자세한 내용은 WPF에 대한 XAML 및 사용자 지정 클래스를 참조하세요.

참고 항목