다음을 통해 공유


x:TypeArguments 지시문

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

XAML 특성 사용

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

XAML 값

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

발언

대부분의 경우 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"

<문자열> 나열

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

사전<문자열, 문자열>

<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)" ...> 내부 제약 조건 형식 인수 StringStringKeyValuePair<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 언어 기본 형식에 대한 기본 제공 형식을 사용할 수 있습니다. 예를 들어 다음을 선언할 수 있습니다(접두사 매핑은 표시되지 않지만 x는 XAML 2009의 XAML 언어 XAML 네임스페이스임).

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

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

참고 항목