Binding 태그 확장Binding Markup Extension

속성 값을 데이터 바인딩된 값으로 지연 하 여 중간 식 개체를 만들고 런타임에 요소 및 바인딩에 적용 되는 데이터 컨텍스트를 해석 합니다.Defers a property value to be a data-bound value, creating an intermediate expression object and interpreting the data context that applies to the element and its binding at run time.

바인딩 식 사용Binding Expression Usage

<object property="{Binding}" .../>  
-or-  
<object property="{Binding  bindProp1=value1[, bindPropN=valueN]*}" ...  
/>  
-or-  
<object property="{Binding path}" .../>  
-or  
<object property="{Binding path[, bindPropN=valueN]*}" .../>  

구문 정보Syntax Notes

이러한 구문에서 []*는 리터럴이 아닙니다.In these syntaxes, the [] and * are not literals. 이러한 값은 0 개 이상의 bindprop= 쌍을 사용할 수 있음을 나타내는 표기법의 일부 이며, 그 사이에는 , 구분 기호와 이전 bindprop= 쌍이 있습니다.They are part of a notation to indicate that zero or more bindProp=value pairs can be used, with a , separator between them and preceding bindProp=value pairs.

"바인딩 확장을 사용 하 여 설정할 수 있는 바인딩 속성" 섹션에 나열 된 모든 속성은 Binding object 요소의 특성을 사용 하 여 설정할 수 있습니다.Any of the properties listed in the "Binding Properties That Can Be Set with the Binding Extension" section could instead be set using attributes of a Binding object element. 그러나 Binding의 태그 확장 사용은 아닙니다 .이는 CLR Binding 클래스의 속성을 설정 하는 특성의 일반적인 XAML 처리 일 뿐입니다.However, that is not truly the markup extension usage of Binding, it is just the general XAML processing of attributes that set properties of the CLR Binding class. 즉, <Binding bindProp1="Value1"[ Bindpropn="valueen"]*/>Binding 식 사용 대신 Binding 개체 요소 사용의 특성에 해당 하는 구문입니다.In other words, <Binding bindProp1="value1"[ bindPropN="valueN"]*/> is an equivalent syntax for attributes of Binding object element usage instead of a Binding expression usage. Binding의 특정 속성에 대 한 XAML 특성 사용에 대 한 자세한 내용은 .NET Framework 클래스 라이브러리에서 Binding 관련 속성의 "XAML 특성 사용" 섹션을 참조 하세요.To learn about the XAML attribute usage of specific properties of Binding, see the "XAML Attribute Usage" section of the relevant property of Binding in the .NET Framework Class Library.

XAML 값XAML Values

bindProp1, bindPropN 설정할 Binding 또는 BindingBase 속성의 이름입니다.The name of the Binding or BindingBase property to set. Binding 확장을 사용 하 여 모든 Binding 속성을 설정할 수 있는 것은 아니고, 추가 중첩 된 태그 확장을 사용 해야만 Binding 식 내에서 일부 속성을 설정할 수 있습니다.Not all Binding properties can be set with the Binding extension, and some properties are settable within a Binding expression only by using further nested markup extensions. "바인딩 확장을 사용 하 여 설정할 수 있는 바인딩 속성" 섹션을 참조 하세요.See "Binding Properties That Can Be Set with the Binding Extension" section.
value1, valueN 속성을 설정할 값.The value to set the property to. 특성 값의 처리는 궁극적으로 설정 되는 특정 Binding 속성의 형식 및 논리와 관련이 있습니다.The handling of the attribute value is ultimately specific to the type and logic of the specific Binding property being set.
path 암시적 Binding.Path 속성을 설정 하는 경로 문자열입니다.The path string that sets the implicit Binding.Path property. XAML 구문 PropertyPath도 참조 하세요.See also PropertyPath XAML Syntax.

정규화 되지 않은 {Binding}Unqualified {Binding}

"바인딩 식 사용"에 표시 된 {Binding} 사용은 기본값을 사용 하 여 null의 초기 Binding.Path를 포함 하는 Binding 개체를 만듭니다.The {Binding} usage shown in "Binding Expression Usage" creates a Binding object with default values, which includes an initial Binding.Path of null. 이는 생성 된 Binding Binding.Path와 같은 키 데이터 바인딩 속성과 런타임 데이터 컨텍스트에서 설정 되는 Binding.Source를 사용할 수 있기 때문에 대부분의 시나리오에서 유용 합니다.This is still useful in many scenarios, because the created Binding might be relying on key data binding properties such as Binding.Path and Binding.Source being set in the run-time data context. 데이터 컨텍스트 개념에 대 한 자세한 내용은 데이터 바인딩을 참조 하세요.For more information on the concept of data context, see Data Binding.

암시적 경로Implicit Path

Binding 태그 확장은 Binding.Path를 개념 "기본 속성"으로 사용 합니다 .이 경우 Path= 식에 나타날 필요가 없습니다.The Binding markup extension uses Binding.Path as a conceptual "default property", where Path= does not need to appear in the expression. 암시적 경로를 사용 하 여 Binding 식을 지정 하는 경우 이름으로 Binding 속성이 지정 된 다른 bindProp=value 쌍 보다 먼저 암시적 경로가 식에 표시 되어야 합니다.If you specify a Binding expression with an implicit path, the implicit path must appear first in the expression, prior to any other bindProp=value pairs where the Binding property is specified by name. 예: {Binding PathString}. 여기서 PathString는 태그 확장 사용으로 만든 BindingBinding.Path 값으로 평가 되는 문자열입니다.For example: {Binding PathString}, where PathString is a string that is evaluated to be the value of Binding.Path in the Binding created by the markup extension usage. 쉼표 구분 기호 뒤에 다른 명명 된 속성을 사용 하 여 암시적 경로를 추가할 수 있습니다 (예: {Binding LastName, Mode=TwoWay}).You can append an implicit path with other named properties after the comma separator, for example, {Binding LastName, Mode=TwoWay}.

바인딩 확장을 사용 하 여 설정할 수 있는 바인딩 속성Binding Properties That Can Be Set with the Binding Extension

이 항목에 표시 된 구문에서는 Binding 태그 확장/식 구문을 통해 설정할 수 있는 BindingBase 또는 Binding의 읽기/쓰기 속성이 많기 때문에 제네릭 bindProp=value 근사값을 사용 합니다.The syntax shown in this topic uses the generic bindProp=value approximation, because there are many read/write properties of BindingBase or Binding that can be set through the Binding markup extension / expression syntax. 암시적 Binding.Path를 제외 하 고 순서에 관계 없이 설정할 수 있습니다.They can be set in any order, with the exception of an implicit Binding.Path. Path=를 명시적으로 지정 하는 옵션을 사용할 수 있으며,이 경우 임의의 순서로 설정할 수 있습니다.(You do have the option to explicitly specify Path=, in which case it can be set in any order). 기본적으로 아래 목록에서 0 개 이상의 속성을 설정 하 고 쉼표로 구분 된 bindProp=value 쌍을 사용할 수 있습니다.Basically, you can set zero or more of the properties in the list below, using bindProp=value pairs separated by commas.

이러한 속성 값 중 일부에는 XAML의 텍스트 구문에서 네이티브 형식 변환을 지원 하지 않으므로 특성 값으로 설정 하기 위해 태그 확장이 필요한 개체 형식이 필요 합니다.Several of these property values require object types that do not support a native type conversion from a text syntax in XAML, and thus require markup extensions in order to be set as an attribute value. 자세한 내용은 각 속성에 대 한 .NET Framework 클래스 라이브러리의 XAML 특성 사용 섹션을 참조 하세요. 추가 태그 확장 사용 여부와 상관 없이 XAML 특성 구문에 사용 되는 문자열은 기본적으로 Binding 식에서 지정 하는 값과 동일 합니다. 단,에서는 각 bindProp=value에 따옴표를 넣지 않습니다. Binding 식입니다.Check the XAML Attribute Usage section in the .NET Framework Class Library for each property for more information; the string you use for XAML attribute syntax with or without further markup extension usage is basically the same as the value you specify in a Binding expression, with the exception that you do not place quotation marks around each bindProp=value in the Binding expression.

다음은 Binding 태그 확장/{Binding} 식 형태를 사용 하 여 설정할 수 없는 Binding 속성입니다.The following are properties of Binding that cannot be set using the Binding markup extension/{Binding} expression form.

  • UpdateSourceExceptionFilter:이 속성에는 콜백 구현에 대 한 참조가 필요 합니다.UpdateSourceExceptionFilter: this property expects a reference to a callback implementation. 이벤트 처리기 이외의 콜백/메서드는 XAML 구문에서 참조할 수 없습니다.Callbacks/methods other than event handlers cannot be referenced in XAML syntax.

  • ValidationRules: 속성은 ValidationRule 개체의 제네릭 컬렉션을 사용 합니다.ValidationRules: the property takes a generic collection of ValidationRule objects. 이는 Binding object 요소의 속성 요소로 표시 될 수 있지만 Binding 식에서 사용 하기 위한 특성 구문 분석 기술은 바로 사용할 수 없습니다.This could be expressed as a property element in a Binding object element, but has no readily available attribute-parsing technique for usage in a Binding expression. ValidationRules에 대 한 참조 항목을 참조 하세요.See reference topic for ValidationRules.

  • XmlNamespaceManager

주의Remarks

중요

종속성 속성의 우선 순위를 기준으로 Binding 식은 로컬로 설정 된 값과 동일 합니다.In terms of dependency property precedence, a Binding expression is equivalent to a locally set value. 이전에 Binding 식이 있던 속성의 로컬 값을 설정 하면 Binding 완전히 제거 됩니다.If you set a local value for a property that previously had a Binding expression, the Binding is completely removed. 자세한 내용은 종속성 속성 값 우선 순위를 참조하세요.For details, see Dependency Property Value Precedence.

기본 수준에서 데이터 바인딩을 설명 하는 방법은이 항목에서 다루지 않습니다.Describing data binding at a basic level is not covered in this topic. 데이터 바인딩 개요를 참조 하세요.See Data Binding Overview.

참고

MultiBindingPriorityBindingXAMLXAML 확장 구문을 지원 하지 않습니다.MultiBinding and PriorityBinding do not support a XAMLXAML extension syntax. 대신 속성 요소를 사용 합니다.You would instead use property elements. MultiBindingPriorityBinding에 대 한 참조 항목을 참조 하세요.See reference topics for MultiBinding and PriorityBinding.

XAML에 대 한 부울 값은 대/소문자를 구분 하지 않습니다.Boolean values for XAML are case insensitive. 예를 들어 {Binding NotifyOnValidationError=true} 또는 {Binding NotifyOnValidationError=True}를 지정할 수 있습니다.For example you could specify either {Binding NotifyOnValidationError=true} or {Binding NotifyOnValidationError=True}.

데이터 유효성 검사와 관련 된 바인딩은 일반적으로 {Binding ...} 식이 아니라 명시적 Binding 요소로 지정 되며 식에 ValidatesOnDataErrors 또는 ValidatesOnExceptions를 설정 하는 것은 일반적이 지 않습니다.Bindings that involve data validation are typically specified by an explicit Binding element rather than as a {Binding ...} expression, and setting ValidatesOnDataErrors or ValidatesOnExceptions in an expression is uncommon. 이는 동반 속성 ValidationRules를 식 폼에서 쉽게 설정할 수 없기 때문입니다.This is because the companion property ValidationRules cannot be readily set in the expression form. 자세한 내용은 바인딩 유효성 검사 구현을 참조 하세요.For more information, see Implement Binding Validation.

Binding은 태그 확장입니다.Binding 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 type converters attributed 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 string contents. 자세한 내용은 태그 확장 및 WPF XAML을 참조하세요.For more information, see Markup Extensions and WPF XAML.

Binding는 WPF의 XAML 구현에 대 한 확장 기능을 구현 하는 Binding 클래스가 XAML과 관련이 없는 몇 가지 다른 메서드와 속성을 구현 하는 경우에는 이례적인 태그 확장입니다.Binding is an atypical markup extension in that the Binding class that implements the extension functionality for WPF's XAML implementation also implements several other methods and properties that are not related to XAML. 다른 멤버는 XAML 태그 확장으로 작동 하는 것 외에도 많은 데이터 바인딩 시나리오를 처리할 수 있는 보다 다양 하 고 자체 포함 클래스를 Binding 하기 위한 것입니다.The other members are intended to make Binding a more versatile and self-contained class that can address many data binding scenarios in addition to functioning as a XAML markup extension.

참조See also