Binding 태그 확장
속성 값이 데이터 바인딩된 값이 되는 것을 지연하여 중간 식 개체를 만들고 런타임에 요소 및 해당 바인딩에 적용되는 데이터 컨텍스트를 해석합니다.
바인딩 식 사용
<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 쌍을 사용할 수 있음을 나타내기 위한 표기법의 일부이며, bindProp=
value 쌍 사이와 앞에 ,
구분 기호가 있습니다.
"바인딩 확장으로 설정할 수 있는 바인딩 속성" 섹션에 나열된 속성은 대신 Binding 개체 요소의 특성을 사용하여 설정할 수 있습니다. 그러나 이것은 진정한 Binding의 태그 확장 사용이 아니라 CLR Binding 클래스의 속성을 설정하는 특성의 일반적인 XAML 처리일 뿐입니다. 다시 말해 <Binding
bindProp1="
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}
사용은 null
인 초기 Binding.Path를 포함하는 기본값을 사용하여 Binding 개체를 만듭니다. 만들어진 Binding이 런타임 데이터 컨텍스트에서 설정되는 Binding.Path 및 Binding.Source와 같은 주요 데이터 바인딩에 의존할 수 있으므로 이는 여러 시나리오에서 여전히 유용합니다. 데이터 컨텍스트의 개념에 대한 자세한 내용은 데이터 바인딩을 참조하세요.
암시적 경로
Binding
태그 확장은 Path=
가 식에 나타날 필요가 없는 개념적 "기본 속성"으로 Binding.Path를 사용합니다. 암시적 경로를 사용하여 Binding
식을 지정하는 경우 이름으로 Binding 속성이 지정되는 다른 어떤 bindProp
=value
쌍보다 앞서 식에서 암시적 경로가 먼저 나타나야 합니다. 예: {Binding PathString}
(여기서 PathString
은 태그 확장 사용에 의해 만들어진 Binding에서 Binding.Path 값으로 평가되는 문자열입니다). 쉼표 구분 기호 뒤에 명명된 다른 속성과 함께 암시적 경로를 추가할 수 있습니다(예: {Binding LastName, Mode=TwoWay}
).
바인딩 확장으로 설정할 수 있는 바인딩 속성
이 항목에 나온 구문은 Binding
태그 확장/식 구문을 통해 설정할 수 있는 BindingBase 또는 Binding의 읽기/쓰기 속성이 많기 때문에 제네릭 bindProp
=value
근사값을 사용합니다. 암시적 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을 많은 데이터 바인딩 시나리오를 해결할 수 있는 보다 다재다능한 자체 포함 클래스로 만들기 위한 것입니다.
참고 항목
.NET Desktop feedback