x:Subclass 특성
업데이트: 2007년 11월
x:Class도 제공되는 경우 XAML 컴파일 동작을 수정합니다. 즉, 페이지 클래스를 기반으로 partial 클래스를 만드는 대신, 제공된 x:Class가 중간 클래스로 만들어지고 제공된 파생 클래스는 x:Class를 기반으로 하는 것으로 간주됩니다.
XAML 특성 사용
<object x:Class="namespace.classname" x:Subclass="subclassNamespace.subclassName">
...
</object>
XAML 값
namespace |
선택적 요소입니다. classname이 포함된 CLR 네임스페이스를 지정합니다. namespace를 지정하는 경우 점(.)으로 namespace와 classname을 분리합니다. |
classname |
필수 요소입니다. 로드된 XAML 및 해당 XAML의 코드 숨김을 연결하는 partial 클래스의 CLR 이름을 지정합니다. 설명 부분을 참조하십시오. |
subclassNamespace |
선택적 요소입니다. 각 네임스페이스가 서로 이름을 확인할 수 있으면 namespace와 다를 수 있습니다. subclassName이 포함된 CLR 네임스페이스를 지정합니다. subclassName을 지정하는 경우 점(.)으로 subclassNamespace와 subclassName을 분리합니다. |
subclassName |
필수 요소입니다. 서브클래스의 CLR 이름을 지정합니다. |
종속성
x:Class 특성도 동일한 요소에서 제공되어야 하며 해당 요소는 페이지의 루트 요소여야 합니다.
설명
x:Subclass는 기본적으로 partial 클래스 선언을 지원하지 않는 언어를 위해 사용됩니다.
x:Subclass는 XAML(Extensible Application Markup Language) 페이지의 루트인 모든 요소와 이미 x:Class가 있는 응용 프로그램 정의의 Application 루트에 대해 선언할 수 있습니다. x:Subclass를 페이지 또는 응용 프로그램 루트 이외의 요소에 대해 선언하거나 x:Class가 없는 위치에서 지정하면 컴파일 타임 오류가 발생합니다.
x:Subclass 시나리오에서 올바르게 동작하는 파생 클래스를 만드는 것은 꽤 복잡합니다. 중간 파일(프로젝트의 obj 폴더에 생성되며 .xaml 파일 이름이 통합된 이름의 .g 파일)을 검사해야 할 수 있습니다. 이러한 중간 파일은 컴파일된 응용 프로그램에서 결합된 partial 클래스의 프로그래밍 구문에 대한 출처를 확인하는 데 도움이 될 수 있습니다.
x:Subclass로 사용되는 클래스는 중첩된 클래스가 될 수 없습니다.
컴파일 도중 중간 클래스에서 만들어질 때 처리기의 스텁을 재정의하려면 파생 클래스의 이벤트 처리기는 internal override(Microsoft Visual Basic .NET의 Friend Overrides)여야 합니다. 그렇지 않으면 파생 클래스 구현은 중간 클래스 구현을 숨기고 중간 클래스 처리기가 호출되지 않습니다.
x:Class와 x:Subclass를 모두 정의하는 경우 x:Class에서 참조하는 클래스에 대한 구현을 제공할 필요가 없습니다. 중간 파일에 만드는 클래스에 대한 지침이 컴파일러에 있으므로 이에 따라 x:Class 특성을 통해 이름만 지정하기만 하면 됩니다(이 경우 컴파일러는 기본 이름을 선택하지 않음). 원하는 경우 x:Class 클래스에 구현을 제공할 수 있지만 이것은 x:Class와 x:Subclass를 모두 사용하는 일반적인 시나리오에 속하지 않습니다.