Binding 태그 확장
업데이트: 2007년 11월
중간 식 개체를 만들고 런타임에 요소에 적용되는 데이터 컨텍스트를 해석하여 속성 값이 데이터 바인딩된 값으로 되는 것을 연기합니다.
XAML 특성 사용
<object property="{Binding}" .../>
- 또는 -
<object property="{Binding bindingPropertyName1=value,
bindingPropertyName2=value,
bindingPropertyNameN=value}" ...
/>
XAML 개체 요소 사용
<object>
<object.property>
<Binding/>
</object.property>
</object>
- 또는 -
<object>
<object.property>
<Binding bindingPropertyName1="value"
bindingPropertyName2="value"
bindingPropertyNameN="value"
/>
</object.property>
</object>
예제 특성 구문의 속성/값 쌍으로 설정될 아래에 나열된 모든 속성은 대신 개체 요소 구문에 정의된 대로 Binding 요소의 특성으로 설정될 수 있습니다.
XAML 값
bindingPropertyName# |
설정할 Binding 속성의 Name입니다. Binding 확장을 사용하여 모든 Binding 속성을 설정할 수는 없으며 일부 속성은 고급 중첩 태그 확장만을 사용하여 설정할 수 있습니다. "Binding 확장을 사용하여 설정할 수 있는 Binding 속성" 단원을 참조하십시오. |
value |
속성을 설정할 값입니다. 특성 값 처리는 기본적으로 설정하는 bindingPropertyName의 형식 및 논리에 따라 달라집니다. |
Binding 확장을 사용하여 설정할 수 있는 Binding 속성
Binding 태그 확장 구문을 통해 설정할 수 있는 BindingBase 또는 Binding의 읽기/쓰기 속성이 많기 때문에 이 항목에 나오는 구문에서는 제네릭 bindingPropertyName=value 근사값을 사용합니다. 이러한 속성은 순서에 관계없이 설정할 수 있습니다. 기본적으로 쉼표로 구분되는 속성/값 쌍을 사용하여 아래 목록의 속성을 하나도 설정하지 않거나 하나 이상을 설정할 수 있습니다.
이러한 속성 값 중 몇 개는 네이티브 형식 변환을 지원하지 않는 개체 형식을 필요로 하기 때문에 고급 태그 확장을 사용하여 XAML에 특성 값으로 설정해야 합니다. 각 속성에서 적절한 특성 구문을 결정할 수 있도록 참조에서 XAML 특성 사용 단원을 확인하십시오.
BindsDirectlyToSource: bool 형식으로 true 또는 false입니다.
Converter: XAML에 설정할 수 있지만 그렇게 하려면 StaticResource 태그 확장과 같은 개체 참조가 필요합니다.
ConverterCulture: 표준 기반 식별자로 설정할 수 있습니다. ConverterCulture에 대해서는 참조를 확인하십시오.
ConverterParameter: 참조 형식으로 전달하려면 StaticResource 태그 확장과 같은 개체 참조가 필요합니다.
ElementName: RelativeSource와 Source는 상호 배타적이며 각각의 이러한 속성은 특별한 바인딩 방법을 나타냅니다. 데이터 바인딩 개요를 참조하십시오.
FallbackValue: 참조 형식으로 전달하려면 StaticResource 태그 확장과 같은 개체 참조가 필요합니다.
Path: PropertyPath XAML 구문을 참조하십시오.
RelativeSource: ElementName와 Source는 상호 배타적이며 각각의 이러한 속성은 특별한 바인딩 방법을 나타냅니다. 데이터 바인딩 개요를 참조하십시오. RelativeSource MarkupExtension을 사용해야 합니다.
Source: RelativeSource와 ElementName는 상호 배타적이며 각각의 이러한 속성은 특별한 바인딩 방법을 나타냅니다. 데이터 바인딩 개요를 참조하십시오. StaticResource 태그 확장과 같은 개체 참조가 필요합니다.
다음은 Binding 태그 확장을 사용하여 설정할 수 없는 Binding의 속성입니다.
설명
여기에 나오는 bindingPropertyName 자리 표시자는 Binding 클래스의 일부 선언된 설정 가능 속성의 이름에 해당하며 값 문자열은 이러한 속성 값이 XAML 요소로 선언된 Binding 내에 XAML 특성으로 설정되는 방법에 해당합니다.
데이터 바인딩에 대한 개념은 여기서 다루지 않습니다. 개념에 대한 자세한 내용은 데이터 바인딩 개요를 참조하고 대체 구문에 대한 자세한 내용은 바인딩 선언 개요를 참조하십시오. 대체 구문 설명에는 XAML에 있는 Binding 개체 요소의 특성 속성, Binding의 속성 요소 구문, SetBinding 또는 Binding 생성자를 사용하여 바인딩을 만드는 절차와 같은 많은 구문을 사용하여 이에 해당하는 바인딩을 만드는 방법이 포함되어 있습니다.
중요
종속성 속성 우선 순위의 관점에서 바인딩 식은 로컬에 설정된 값에 해당합니다. 이미 Binding 식이 있는 속성에 로컬 값을 설정하면 Binding이 완전히 제거됩니다. 자세한 내용은 종속성 속성 값 우선 순위를 참조하십시오.
참고
MultiBinding 및 PriorityBinding은 Binding에 대한 XAML 동작을 실제로 구현하는 동일한 BindingBase 클래스를 공유해도 XAML 확장 구문을 지원하지 않습니다.
Binding은 태그 확장입니다. 태그 확장은 특성 값을 리터럴 값 또는 처리기 이름이 아닌 다른 값이 되도록 이스케이프해야 하는 요구 사항이 있는 경우 일반적으로 구현되며 이러한 요구 사항은 특정 형식 또는 속성에 형식 변환기를 배치하는 것보다 더 포괄적입니다. XAML의 모든 태그는 태그의 특성 구문에 { 및 } 문자를 사용하며 여기서 특성 구문은 XAML 프로세서에 태그 확장이 특성을 처리해야 한다는 것을 인식하는 규칙입니다. 자세한 내용은 태그 확장 및 XAML을 참조하십시오. Binding은 확장 기능, 몇 가지 다른 메서드 및 속성을 구현하는 Binding 클래스라는 점에서 예외적인 태그 확장입니다. 이러한 다른 멤버는 태그 확장 기능에 직접적으로 필요하지 않습니다. 멤버는 Binding을 보다 다양하며 독립적인 클래스로 만들기 위한 것입니다. 이러한 클래스를 사용하면 XAML 태그 확장으로 작동함은 물론 다양한 데이터 바인딩 시나리오를 다룰 수 있습니다.