속성 값이 데이터 바인딩된 값이 되는 것을 지연하여 중간 식 개체를 만들고 런타임에 요소 및 해당 바인딩에 적용되는 데이터 컨텍스트를 해석합니다.
바인딩 식 사용
<object property="{Binding}" .../>
-or-
<object property="{Binding bindProp1=value1[, bindPropN=valueN]*}" ...
/>
-or-
<object property="{Binding path}" .../>
-or
<object property="{Binding path[, bindPropN=valueN]*}" .../>
구문 참고 사항
이러한 구문에서 [] 및 *는 리터럴이 아닙니다. 이들은 bindProp=value 쌍을 사용할 수 있음을 나타내기 위한 표기법의 일부이며, ,= 쌍 사이와 앞에 구분 기호가 있습니다.
"바인딩 확장으로 설정할 수 있는 바인딩 속성" 섹션에 나열된 속성은 대신 Binding 개체 요소의 특성을 사용하여 설정할 수 있습니다. 그러나 이것은 진정한 Binding의 태그 확장 사용이 아니라 CLR Binding 클래스의 속성을 설정하는 특성의 일반적인 XAML 처리일 뿐입니다. 다시 말해 <BindingbindProp1="value1"[bindPropN="valueN"]*/>은 Binding 식 사용 대신 Binding 개체 요소 사용의 특성에 해당하는 구문입니다.
Binding의 특정 속성의 XAML 특성 사용에 대해 알아보려면 .NET Framework 클래스 라이브러리에서 Binding 관련 속성의 "XAML 특성 사용" 섹션을 참조하세요.
XAML 값
| 가치 | 설명 |
|---|---|
bindProp1, bindPropN |
Binding의 이름 또는 설정할 BindingBase 속성. 일부 Binding 속성은 Binding 확장으로 설정할 수 없으며, 일부 속성은 추가 중첩된 태그 확장을 사용해야만 Binding 식 내에서 설정할 수 있습니다. "바인딩 확장으로 설정할 수 있는 바인딩 속성" 섹션을 참조하세요. |
value1, valueN |
속성을 설정할 값입니다. 특성 값의 처리는 궁극적으로 설정되는 특정 Binding 속성의 형식 및 논리에 따라 다릅니다. |
path |
암시적 Binding.Path 속성을 설정하는 경로 문자열. PropertyPath XAML 구문을 참조하세요. |
정규화되지 않은 {Binding}
"바인딩 식 사용"에 표시된 {Binding} 사용은 Binding인 초기 Binding.Path를 포함하는 기본값을 사용하여 null 개체를 만듭니다. 만들어진 Binding이 런타임 데이터 컨텍스트에서 설정되는 Binding.Path 및 Binding.Source와 같은 주요 데이터 바인딩에 의존할 수 있으므로 이는 여러 시나리오에서 여전히 유용합니다. 데이터 컨텍스트의 개념에 대한 자세한 내용은 데이터 바인딩을 참조하세요.
암시적 경로
Binding 태그 확장은 Binding.Path가 식에 나타날 필요가 없는 개념적 "기본 속성"으로 Path=를 사용합니다. 암시적 경로를 사용하여 Binding 식을 지정하는 경우 이름으로 bindProp 속성이 지정되는 다른 어떤 =valueBinding 쌍보다 앞서 식에서 암시적 경로가 먼저 나타나야 합니다. 예: {Binding PathString}(여기서 PathString은 태그 확장 사용에 의해 만들어진 Binding.Path에서 Binding 값으로 평가되는 문자열입니다). 쉼표 구분 기호 뒤에 명명된 다른 속성과 함께 암시적 경로를 추가할 수 있습니다(예: {Binding LastName, Mode=TwoWay}).
바인딩 확장으로 설정할 수 있는 바인딩 속성
이 항목에 나온 구문은 bindProp 태그 확장/식 구문을 통해 설정할 수 있는 = 또는 value의 읽기/쓰기 속성이 많기 때문에 제네릭 BindingBaseBindingBinding 근사값을 사용합니다. 암시적 Binding.Path를 제외하고 어떤 순서로도 설정할 수 있습니다. (명시적으로 Path=를 지정할 수 있는 옵션도 있습니다. 이 경우 어떤 순서로도 설정할 수 있습니다). 기본적으로 쉼표로 구분된 bindProp=value 쌍을 사용하여 아래 목록에서 0개 이상의 속성을 설정할 수 있습니다.
이러한 속성 값 중 일부는 XAML 텍스트 구문에서 네이티브 형식 변환을 지원하지 않는 개체 형식이 필요하므로 특성 값으로 설정하려면 태그 확장이 필요합니다. 자세한 내용은 각 속성의 .NET Framework 클래스 라이브러리의 XAML 속성 사용 섹션을 확인하세요. 추가 태그 확장 사용이 있거나 없는 XAML 특성 구문에 사용하는 문자열은 Binding 식에서 각 bindProp=value를 따옴표로 묶지 않는 점을 제외하고 기본적으로 Binding 식에서 지정하는 값과 동일합니다.
BindingGroupName: 가능한 바인딩 그룹을 식별하는 문자열입니다. 이것은 비교적 고급 바인딩 개념입니다. BindingGroupName의 참조 페이지를 참조하세요.
BindsDirectlyToSource: 부울로,
true또는false일 수 있습니다. 기본값은false입니다.Converter: 식에서
bindProp=value문자열로 설정할 수 있지만 그러려면 StaticResource 태그 확장과 같은 값의 개체 참조가 필요합니다. 이 경우 값은 사용자 지정 변환기 클래스의 인스턴스입니다.ConverterCulture: 식에서 표준 기반 식별자로 설정할 수 있습니다. ConverterCulture의 참조 항목을 참조하세요.
ConverterParameter: 식에서
bindProp=value문자열로 설정할 수 있지만 전달되는 매개 변수의 형식에 따라 달라집니다. 값의 참조 형식을 전달하는 경우 이 사용에는 중첩된 StaticResource 태그 확장과 같은 개체 참조가 필요합니다.ElementName: 상호 배타적 대 RelativeSource 및 Source. 이러한 각 바인딩 속성은 특정 바인딩 방법론을 나타냅니다. 데이터 바인딩 개요를 참조하세요.
FallbackValue: 식에서
bindProp=value문자열로 설정할 수 있지만 전달되는 값의 형식에 따라 달라집니다. 참조 형식을 전달하는 경우 중첩된 StaticResource 태그 확장과 같은 개체 참조가 필요합니다.IsAsync: 부울로,
true또는false일 수 있습니다. 기본값은false입니다.Mode: 값은 BindingMode 열거형의 상수 이름입니다. 예:
{Binding Mode=OneWay}.NotifyOnSourceUpdated: 부울로,
true또는false일 수 있습니다. 기본값은false입니다.NotifyOnTargetUpdated: 부울로,
true또는false일 수 있습니다. 기본값은false입니다.NotifyOnValidationError: 부울로,
true또는false일 수 있습니다. 기본값은false입니다.Path: 데이터 개체 또는 일반 개체 모델의 경로를 설명하는 문자열입니다. 이 형식은 이 항목에서 충분히 설명할 수 없는 개체 모델을 트래버스하기 위한 몇 가지 규칙을 제공합니다. PropertyPath XAML 구문을 참조하세요.
RelativeSource: 상호 배타적 대 ElementName 및 Source. 이러한 각 바인딩 속성은 특정 바인딩 방법론을 나타냅니다. 데이터 바인딩 개요를 참조하세요. 값을 지정하려면 중첩된 RelativeSource MarkupExtension 사용이 필요합니다.
Source: 상호 배타적 대 RelativeSource 및 ElementName. 이러한 각 바인딩 속성은 특정 바인딩 방법론을 나타냅니다. 데이터 바인딩 개요를 참조하세요. 중첩 확장 사용이 필요합니다. 일반적으로 키 지정된 리소스 사전의 개체 데이터 원본을 참조하는 StaticResource 태그 확장입니다.
StringFormat: 바인딩된 데이터의 문자열 형식 규칙을 설명하는 문자열입니다. 이것은 비교적 고급 바인딩 개념입니다. StringFormat의 참조 페이지를 참조하세요.
TargetNullValue: 식에서
bindProp=value문자열로 설정할 수 있지만 전달되는 매개 변수의 형식에 따라 달라집니다. 값의 참조 형식을 전달하는 경우 중첩된 StaticResource 태그 확장과 같은 개체 참조가 필요합니다.UpdateSourceTrigger: 값은 UpdateSourceTrigger 열거형의 상수 이름입니다. 예:
{Binding UpdateSourceTrigger=LostFocus}. 특정 컨트롤에는 잠재적으로 이 바인딩 속성의 다른 기본값이 있습니다. UpdateSourceTrigger을(를) 참조하세요.ValidatesOnDataErrors: 부울로,
true또는false일 수 있습니다. 기본값은false입니다. 비고를 참조하세요.ValidatesOnExceptions: 부울로,
true또는false일 수 있습니다. 기본값은false입니다. 비고를 참조하세요.XPath: XML 데이터 원본의 XMLDOM 경로를 설명하는 문자열입니다. XMLDataProvider 및 XPath 쿼리를 사용하여 XML 데이터에 바인딩을 참조하세요.
다음은 Binding 태그 확장/Binding식 양식을 사용하여 설정할 수 없는 {Binding}의 속성입니다.
UpdateSourceExceptionFilter: 이 속성에는 콜백 구현에 대한 참조가 필요합니다. 이벤트 처리기 이외의 콜백/메서드는 XAML 구문에서 참조할 수 없습니다.
ValidationRules: 이 속성은 ValidationRule 개체의 제네릭 컬렉션을 사용합니다. Binding 개체 요소에서 속성 요소로 표현할 수 있지만
Binding식에서 사용할 수 있는 특성 구문 분석 기법은 없습니다. ValidationRules 참조 항목을 참조하세요.
비고
중요합니다
종속성 속성 우선 순위 측면에서 Binding 식은 로컬로 설정된 값과 같습니다. 이전에 Binding 식이 있었던 속성의 로컬 값을 설정하면 Binding이 완전히 제거됩니다. 자세한 내용은 종속성 속성 값 우선 순위를 참조하세요.
기본 수준의 데이터 바인딩 설명은 이 항목에서 다루지 않습니다. 데이터 바인딩 개요를 참조하세요.
비고
MultiBinding 및 PriorityBinding은 XAML 확장 구문을 지원하지 않습니다. 대신 속성 요소를 사용합니다. MultiBinding 및 PriorityBinding 참조 항목을 참조하세요.
XAML의 부울 값은 대/소문자를 구분하지 않습니다. 예를 들어 {Binding NotifyOnValidationError=true} 또는 {Binding NotifyOnValidationError=True}를 지정할 수 있습니다.
데이터 유효성 검사를 포함하는 바인딩은 일반적으로 Binding 식이 아닌 명시적 {Binding ...} 요소에 의해 지정되며, 식에서 ValidatesOnDataErrors 또는 ValidatesOnExceptions를 설정하는 것은 일반적이지 않습니다. 도우미 속성 ValidationRules를 식 양식에서 쉽게 설정할 수 없기 때문입니다. 자세한 내용은 바인딩 유효성 검사 구현을 참조하세요.
Binding 태그 확장입니다. 태그 확장은 일반적으로 특성 값을 리터럴 값 또는 처리기 이름이 아닌 다른 값이 되도록 이스케이프해야 하는 요구 사항이 있는 경우 구현되며, 이러한 요구 사항은 특정 형식 또는 속성에서 특성 사용되는 형식 변환기보다 더 포괄적입니다. XAML의 모든 태그 확장은 특성 구문에 { 및 } 문자를 사용하며, 여기서 특성 구문은 XAML 프로세서가 태그 확장이 문자열 콘텐츠를 처리해야 함을 인식하는 데 사용하는 규칙입니다. 자세한 내용은 태그 확장 및 WPF XAML을 참조하세요.
Binding은 WPF의 XAML 구현에 대한 확장 기능을 구현하는 Binding 클래스가 XAML과 관련 없는 몇 가지 다른 메서드와 속성도 구현한다는 점에서 비정상적 태그 확장 입니다. 다른 멤버들은 XAML 태그 확장 역할을 하는 것 외에도 Binding을 많은 데이터 바인딩 시나리오를 해결할 수 있는 보다 다재다능한 자체 포함 클래스로 만들기 위한 것입니다.
참고하십시오
- Binding
- 데이터 바인딩 개요
- WPF XAML
- 태그 확장명 및 WPF XAML
.NET Desktop feedback