컨트롤 템플릿의 속성 값을 템플릿 기반 컨트롤의 다른 속성 값에 연결합니다.
XAML 특성 사용
<object property="{TemplateBinding sourceProperty}" ... />
XAML 특성 사용(템플릿 또는 스타일의 Setter 속성의 경우)
<Setter Property="propertyName" Value="{TemplateBinding sourceProperty}" ... />
XAML 값
가치 | 설명 |
---|---|
propertyName |
setter 구문에 설정할 속성의 DependencyProperty.Name입니다. |
sourceProperty |
템플릿을 기반으로 만들 형식에 존재하는 또 다른 종속성 속성이며 해당 DependencyProperty.Name으로 지정됩니다. -또는- 템플릿을 기반으로 만들 대상 형식과는 다른 형식으로 정의되는 "점으로 구분된" 속성 이름이며 실제로는 PropertyPath입니다. PropertyPath XAML 구문을 참조하세요. |
비고
TemplateBinding
은 템플릿 시나리오에 대한 Binding
의 최적화된 형태이며 {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}
를 사용하여 구성된 Binding
과 유사합니다. TemplateBinding
은 속성이 기본적으로 양방향 바인딩과 관련되었더라도 항상 단방향 바인딩입니다. 관련된 두 속성은 모두 종속성 속성이어야 합니다. 템플릿 기반 부모에 대해 양방향 바인딩을 수행하려면 {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay, Path=MyDependencyProperty}
대신 다음 바인딩 문을 사용합니다.
RelativeSource는 템플릿 내에서 상대적 속성 바인딩을 수행하기 위해 TemplateBinding
과 함께 또는 그 대신 사용되는 또 다른 태그 확장입니다.
여기서는 컨트롤 템플릿의 개념에 대해 설명하지 않습니다. 자세한 내용은 컨트롤 스타일 및 템플릿을 참조하세요.
특성 구문은 이 태그 확장에 사용되는 가장 일반적인 구문입니다.
TemplateBinding
식별자 문자열 이후에 제공된 문자열 토큰은 기본 Property 확장 클래스의 TemplateBindingExtension 값으로 할당됩니다.
다른 요소 구문도 가능하지만 실제 환경에서 적용하지 않으므로 표시하지 않았습니다. TemplateBinding
은 평가된 식을 사용하여 setter 내에 값을 채우는 데 사용됩니다. TemplateBinding
에 대한 개체 요소 구문을 사용하여 <Setter.Property>
속성 요소 구문을 채우는 경우 작업이 번거롭습니다.
DynamicResource
속성을 다음과 같이 속성=값 쌍으로 지정하는 자세한 특성 사용 구문에도 ResourceKey을 사용할 수 있습니다.
<object property="{TemplateBinding Property=sourceProperty}" ... />
자세한 정보 표시는 대개 설정 가능한 속성이 둘 이상이거나 일부 속성이 선택 사항인 확장의 경우에 유용합니다. DynamicResource
에는 설정 가능한 속성이 하나뿐이고 이 속성은 필수적 속성이므로 자세한 정보 표시를 사용하지 않는 것이 일반적입니다.
WPF XAML 프로세서 구현에서 이 태그 확장에 대한 처리는 DynamicResourceExtension 클래스를 통해 정의됩니다.
TemplateBinding
태그 확장입니다. 마크업 확장은 속성 값을 리터럴 값이나 처리기 이름이 아닌 다른 값으로 처리해야 할 필요가 있을 때 일반적으로 구현되며, 이러한 필요는 특정 형식이나 속성에만 형식 변환기를 사용하는 것보다 더 광범위합니다. XAML의 모든 태그 확장은 특성 구문에 {
및 }
문자를 사용합니다. 여기서 특성 구문은 XAML 프로세서가 태그 확장이 특성을 처리해야 함을 인식하는 데 사용하는 규칙입니다. 자세한 내용은 태그 확장 및 WPF XAML을 참조하세요.
참고하십시오
.NET Desktop feedback