TemplateBinding 태그 확장TemplateBinding Markup Extension

컨트롤 템플릿의 속성 값을 템플릿 기반 컨트롤의 다른 속성 값에 연결합니다.Links the value of a property in a control template to be the value of another property on the templated control.

XAML 특성 사용XAML Attribute Usage

<object property="{TemplateBinding sourceProperty}" .../>  

XAML 특성 사용(템플릿 또는 스타일의 Setter 속성의 경우)XAML Attribute Usage (for Setter property in template or style)

<Setter Property="propertyName" Value="{TemplateBinding sourceProperty}" .../>  

XAML 값XAML Values

propertyName setter 구문에 설정할 속성의 DependencyProperty.Name입니다.DependencyProperty.Name of the property being set in the setter syntax.
sourceProperty 템플릿을 기반으로 만들 형식에 존재하는 또 다른 종속성 속성이며 해당 DependencyProperty.Name으로 지정됩니다.Another dependency property that exists on the type being templated, specified by its DependencyProperty.Name.

또는- or -

템플릿을 기반으로 만들 대상 형식과는 다른 형식으로 정의되는 "점으로 구분된" 속성 이름이며A "dotted-down" property name that is defined by a different type than the target type being templated. 실제로는 PropertyPath입니다.This is actually a PropertyPath. PROPERTYPATH XAML 구문을 참조 하세요.See PropertyPath XAML Syntax.

주의Remarks

TemplateBinding은 템플릿 시나리오에 대 한 바인딩의 최적화 된 형태 이며 {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}생성 된 Binding와 유사 합니다.A TemplateBinding is an optimized form of a Binding for template scenarios, analogous to a Binding constructed with {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=OneWay}. TemplateBinding은 속성이 기본적으로 양방향 바인딩과 관련되었더라도 항상 단방향 바인딩입니다.A TemplateBinding is always a one-way binding, even if properties involved default to two-way binding. 관련된 두 속성은 모두 종속성 속성이어야 합니다.Both properties involved must be dependency properties. 템플릿 부모에 대 한 양방향 바인딩을 구현 하려면 다음 바인딩 문을 대신 사용 {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay, Path=MyDependencyProperty}합니다.In order to achieve two-way binding to a templated parent use the following binding statement instead {Binding RelativeSource={RelativeSource TemplatedParent}, Mode=TwoWay, Path=MyDependencyProperty}.

RelativeSource 는 템플릿 내에서 상대적 속성 바인딩을 수행 하기 위해 TemplateBinding 대신 또는와 함께 사용 되는 또 다른 태그 확장입니다.RelativeSource is another markup extension that is sometimes used in conjunction with or instead of TemplateBinding in order to perform relative property binding within a template.

컨트롤 템플릿에 대 한 개념은 여기에서 다루지 않습니다. 자세한 내용은 컨트롤 스타일 및 템플릿을 참조 하세요.Describing control templates as a concept is not covered here; for more information, see Control Styles and Templates.

특성 구문은 이러한 태그 확장에 가장 많이 사용되는 구문입니다.Attribute syntax is the most common syntax used with this markup extension. TemplateBinding 식별자 문자열 다음에 나오는 문자열 토큰은 기본 Property 확장 클래스의 TemplateBindingExtension 값으로 할당됩니다.The string token provided after the TemplateBinding identifier string is assigned as the Property value of the underlying TemplateBindingExtension extension class.

다른 요소 구문도 가능하지만 실제 환경에서 적용하지 않으므로 표시하지 않았습니다.Object element syntax is possible, but it is not shown because it has no realistic application. TemplateBinding은 평가된 식을 사용하여 setter 내에 값을 채우는 데 사용됩니다. TemplateBinding에 대한 개체 요소 구문을 사용하여 <Setter.Property> 속성 요소 구문을 채우는 경우 작업이 번거롭습니다.TemplateBinding is used to fill values within setters, using evaluated expressions, and using object element syntax for TemplateBinding to fill <Setter.Property> property element syntax is unnecessarily verbose.

TemplateBinding 속성을 다음과 같이 속성=값 쌍으로 지정하는 자세한 특성 사용 구문에도 Property을 사용할 수 있습니다.TemplateBinding can also be used in a verbose attribute usage that specifies the Property property as a property=value pair:

<object property="{TemplateBinding Property=sourceProperty}" .../>  

자세한 정보 표시는 대개 설정 가능한 속성이 둘 이상이거나 일부 속성이 선택 사항인 확장의 경우에 유용합니다.The verbose usage is often useful for extensions that have more than one settable property, or if some properties are optional. TemplateBinding에는 설정 가능한 속성이 하나뿐이고 이 속성은 필수적 속성이므로 자세한 정보 표시를 사용하지 않는 것이 일반적입니다.Because TemplateBinding has only one settable property, which is required, this verbose usage is not typical.

WPFWPF XAML 프로세서 구현에서이 태그 확장에 대 한 처리는 TemplateBindingExtension 클래스에 의해 정의 됩니다.In the WPFWPF XAML processor implementation, the handling for this markup extension is defined by the TemplateBindingExtension class.

TemplateBinding은 태그 확장입니다.TemplateBinding is a markup extension. 태그 확장은 특성 값을 리터럴 값 또는 처리기 이름이 아닌 다른 값이 되도록 이스케이프해야 하는 요구 사항이 있는 경우 일반적으로 구현되며 이러한 요구 사항은 특정 형식 또는 속성에 형식 변환기를 배치하는 것보다 더 포괄적입니다.Markup extensions are typically implemented when there is a requirement to escape attribute values to be other than literal values or handler names, and the requirement is more global than just putting type converters on certain types or properties. XAML의 모든 태그 확장은 특성 구문에서 {} 문자를 사용 합니다 .이는 XAML 프로세서가 태그 확장에서 특성을 처리 해야 함을 인식 하는 데 사용 되는 규칙입니다.All markup extensions in XAML use the { and } characters in their attribute syntax, which is the convention by which a XAML processor recognizes that a markup extension must process the attribute. 자세한 내용은 태그 확장 및 WPF XAML을 참조하세요.For more information, see Markup Extensions and WPF XAML.

참조See also