x:TypeArguments 지시문

제네릭의 제약 형식 인수를 제네릭 형식의 생성자에 전달합니다.

XAML 특성 사용

<object x:TypeArguments="typeString" .../>

XAML 값

설명
object CLR 제네릭 형식에 의해 지원되는 XAML 형식의 개체 요소 선언입니다. object가 기본 XAML 네임스페이스에서 가져온 것이 아닌 XAML 형식을 참조하는 경우 object에는 object가 존재하는 XAML 네임스페이스를 나타내는 접두사가 필요합니다.
typeString CLR 제네릭 형식에 대한 형식 인수를 제공하는 하나 이상의 XAML 형식 이름을 문자열로 선언하는 문자열입니다. 추가 구문 참고 사항은 설명 섹션을 참조하세요.

설명

대부분의 경우 typeString 문자열에서 정보 항목으로 사용되는 XAML 형식은 접두사가 지정됩니다. CLR 제네릭 제약 조건의 일반적인 형식(예 Int32String)은 CLR 기본 클래스 라이브러리에서 가져옵니다. 이러한 라이브러리는 일반적인 프레임워크별 기본 XAML 네임스페이스에 매핑되지 않으므로 XAML 사용에 대한 접두사 매핑이 필요합니다.

쉼표 구분 기호를 사용하여 둘 이상의 XAML 형식 이름을 지정할 수 있습니다.

제네릭 제약 조건 자체가 제네릭 형식을 사용하는 경우 중첩된 제약 조건 형식 인수를 괄호 ()에 포함할 수 있습니다.

x:TypeArguments 정의는 .NET XAML 서비스 및 CLR 지원 사용과 관련이 있습니다. 언어 수준 정의는 [MS-XAML] 섹션 7.3.11에서 찾을 수 있습니다.

사용 예제

이러한 예제에서는 다음 XAML 네임스페이스 정의가 선언되어 있다고 가정합니다.

xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:scg="clr-namespace:System.Collections.Generic;assembly=mscorlib"

List<String>

<scg:List x:TypeArguments="sys:String" ...>String 형식 인수를 사용하여 새 List<T>를 인스턴스화합니다.

Dictionary<String,String>

<scg:Dictionary x:TypeArguments="sys:String,sys:String" ...>는 두 개의 String 형식 인수를 사용하여 새 Dictionary<TKey,TValue>를 인스턴스화합니다.

Queue<KeyValuePair<String,String>>

<scg:Queue x:TypeArguments="scg:KeyValuePair(sys:String,sys:String)" ...>는 내부 제약 조건 형식 인수 StringString을 사용하여 KeyValuePair<TKey,TValue> 제약 조건이 있는 새 Queue<T>를 인스턴스화합니다.

XAML 2006 및 WPF 제네릭 XAML 사용

XAML 2006 사용 및 WPF 애플리케이션에 사용되는 XAML의 경우 일반적으로 XAML의 x:TypeArguments 및 제네릭 형식 사용에 대해 다음과 같은 제한 사항이 있습니다.

  • XAML 파일의 루트 요소만 제네릭 형식을 참조하는 제네릭 XAML 사용을 지원할 수 있습니다.

  • 루트 요소는 하나 이상의 형식 인수를 사용하여 제네릭 형식에 매핑되어야 합니다. 예제는 PageFunction<T>입니다. 페이지 함수는 WPF에서 XAML 제네릭 사용 지원에 대한 기본 시나리오입니다.

  • 제네릭에 대한 루트 요소 XAML 개체 요소도 x:Class를 사용하여 partial 클래스를 선언해야 합니다. WPF 빌드 작업을 정의하는 경우에도 마찬가지입니다.

  • x:TypeArguments는 중첩된 제네릭 제약 조건을 참조할 수 없습니다.

WPF 3.0 또는 WPF 3.5 종속성이 없는 XAML 2009 또는 XAML 2006

XAML 2006 또는 XAML 2009용 .NET XAML 서비스에서는 제네릭 XAML 사용에 대한 WPF 관련 제한이 완화됩니다. 지원 형식 시스템 및 개체 모델이 지원할 수 있는 XAML 태그의 모든 위치에서 제네릭 개체 요소를 인스턴스화할 수 있습니다.

CLR 기본 형식을 매핑하여 공용 언어 기본 형식에 대한 XAML 형식을 가져오는 대신 XAML 2009를 사용하는 경우 공통 XAML 언어 기본 형식에 대한 기본 제공 형식typeString의 정보 항목으로 사용할 수 있습니다. 예를 들어 다음을 선언할 수 있습니다(접두사 매핑은 표시되지 않지만 x는 XAML 2009용 XAML 언어 XAML 네임스페이스임).

<my:BusinessObject x:TypeArguments="x:String,x:Int32"/>

WPF에서 .NET Framework 4 또는 .NET Core 3.0 이상을 대상으로 하는 경우 XAML 2009 기능을 느슨한 XAML(태그 컴파일되지 않은 XAML)에만 x:TypeArguments와 함께 사용할 수 있습니다. WPF에 대한 태그로 컴파일된 XAML 및 BAML 형식의 XAML은 현재 XAML 2009 키워드 및 기능을 지원하지 않습니다. XAML을 태그 컴파일해야 하는 경우 XAML 2006 및 WPF 제네릭 XAML 사용 섹션에 설명된 제한 사항에 따라 운영해야 합니다. BAML은 .NET Framework에서만 지원됩니다.

참고 항목