Enlazar extensión de marcadoBinding Markup Extension

Aplaza un valor de propiedad para que sea un valor enlazado a datos, crear un objeto de expresión intermedia y la interpretación de contexto de datos que se aplica al elemento y su enlace en tiempo de ejecución.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.

Uso de la expresión de enlaceBinding 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]*}" .../>  

Notas sobre la sintaxisSyntax Notes

En estas sintaxis, el [] y * no son literales.In these syntaxes, the [] and * are not literals. Forman parte de una notación para indicar que cero o más bindProp=valor pares se pueden usar, con un , separador entre ellos y bindProp = valor pares.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.

Cualquiera de las propiedades enumeradas en la sección "Propiedades de enlace que se puede establecer con la extensión de enlace" en su lugar, se pudo establecer mediante los atributos de un Binding elemento de objeto.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. Sin embargo, que no es realmente el uso de la extensión de marcado de Binding, es simplemente el procesamiento de XAML general de atributos que definen propiedades de CLR Binding clase.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. En otras palabras, <Binding bindProp1="value1 "[ bindPropN="valorN "]*/> es una sintaxis equivalente para los atributos de Binding objeto uso de elementos en lugar de un Binding uso de la expresión.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. Para obtener información sobre el uso de atributos XAML de propiedades específicas de Binding, consulte la sección "Uso de atributos XAML" de la propiedad relevante de Binding en la biblioteca de clases de .NET Framework.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.

Valores XAMLXAML Values

bindProp1, bindPropN El nombre de la Binding o BindingBase propiedad que se va a establecer.The name of the Binding or BindingBase property to set. No todos los Binding propiedades se pueden establecer con el Binding extensión y algunas propiedades son configurables dentro de un Binding anidado de expresión sólo mediante más extensiones de marcado.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. Consulte la sección "Propiedades de enlace que se puede establecer con la extensión de enlace".See "Binding Properties That Can Be Set with the Binding Extension" section.
value1, valueN Valor que se establecerá la propiedad.The value to set the property to. El control del valor del atributo es en última instancia específico para el tipo y la lógica específicas de Binding propiedad que se va a establecer.The handling of the attribute value is ultimately specific to the type and logic of the specific Binding property being set.
path La cadena de ruta de acceso que establece implícito Binding.Path propiedad.The path string that sets the implicit Binding.Path property. Vea también sintaxis de PropertyPath XAML.See also PropertyPath XAML Syntax.

{Binding} incompletoUnqualified {Binding}

El {Binding} uso que se muestra en "Uso de la expresión de enlace" crea un Binding objeto con valores predeterminados, que incluye una inicial Binding.Path de null.The {Binding} usage shown in "Binding Expression Usage" creates a Binding object with default values, which includes an initial Binding.Path of null. Esto sigue siendo útil en muchos escenarios, porque creado Binding podrían confiar en las propiedades de enlace de datos clave como Binding.Path y Binding.Source que se va a establecer en el contexto de datos de tiempo de ejecución.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. Para obtener más información sobre el concepto de contexto de datos, vea enlace de datos.For more information on the concept of data context, see Data Binding.

Ruta de acceso implícitaImplicit Path

El Binding usos de la extensión de marcado Binding.Path como conceptual "propiedad predeterminada", donde Path= no deben aparecer en la expresión.The Binding markup extension uses Binding.Path as a conceptual "default property", where Path= does not need to appear in the expression. Si especifica un Binding expresión con una ruta de acceso implícito, la ruta de acceso implícito debe aparecer primero en la expresión, antes de cualquier otro bindProp = value pares dónde el Binding propiedad especificada por nombre.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. Por ejemplo: {Binding PathString}, donde PathString es una cadena que se evalúa como el valor de Binding.Path en el Binding creado mediante el uso de la extensión de marcado.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. Puede anexar una ruta de acceso implícita con otras propiedades con nombre después del separador de coma, por ejemplo, {Binding LastName, Mode=TwoWay}.You can append an implicit path with other named properties after the comma separator, for example, {Binding LastName, Mode=TwoWay}.

Propiedades de enlace que se pueden establecer con la extensión de enlaceBinding Properties That Can Be Set with the Binding Extension

La sintaxis mostrada en este tema utiliza el modelo genérico bindProp = value aproximación, porque hay muchas propiedades de lectura/escritura de BindingBase o Binding que se puede establecer a través de la Binding extensión de marcado / sintaxis de expresiones.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. Se pueden establecer en cualquier orden, a excepción de implícita Binding.Path.They can be set in any order, with the exception of an implicit Binding.Path. (Es necesario especificar explícitamente la opción Path=, en cuyo caso se puede establecer en cualquier orden).(You do have the option to explicitly specify Path=, in which case it can be set in any order). Básicamente, puede establecer cero o más de las propiedades en la lista siguiente, mediante bindProp = value pares separados por comas.Basically, you can set zero or more of the properties in the list below, using bindProp=value pairs separated by commas.

Algunos de estos valores de propiedad requieren tipos de objetos que no admiten una conversión de tipo nativo de una sintaxis de texto en XAML y, por tanto, requieren las extensiones de marcado para poder establecerse como un valor de atributo.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. Consulte la sección uso del atributo XAML en la biblioteca de clases de .NET Framework para cada propiedad para obtener más información; la cadena se usar para la sintaxis de atributo XAML con o sin la extensión de marcado más uso es básicamente el mismo que el valor especificado en un Binding expresión, con la excepción que no colocar comillas alrededor de cada uno bindProp = value en el Binding expresión.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.

Los siguientes son las propiedades de Binding que no se puede establecer utilizando la Binding extensión de marcado /{Binding} forma de expresión.The following are properties of Binding that cannot be set using the Binding markup extension/{Binding} expression form.

  • UpdateSourceExceptionFilter: esta propiedad espera una referencia a una implementación de devolución de llamada.UpdateSourceExceptionFilter: this property expects a reference to a callback implementation. No se puede hacer referencia a las devoluciones de llamada o métodos distintos de los controladores de eventos en la sintaxis XAML.Callbacks/methods other than event handlers cannot be referenced in XAML syntax.

  • ValidationRules: la propiedad toma una colección genérica de ValidationRule objetos.ValidationRules: the property takes a generic collection of ValidationRule objects. Esto se puede expresar como un elemento de propiedad en un Binding elemento de objeto, pero no tiene ninguna técnica de análisis de atributos disponible para su uso en un Binding expresión.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. Vea el tema de referencia ValidationRules.See reference topic for ValidationRules.

  • XmlNamespaceManager

ComentariosRemarks

Importante

En términos de prioridad de la propiedad de dependencia, una Binding expresión es equivalente a establecido localmente un valor.In terms of dependency property precedence, a Binding expression is equivalent to a locally set value. Si establece un valor local para una propiedad que previamente tenía una Binding expresión, el Binding se ha quitado completamente.If you set a local value for a property that previously had a Binding expression, the Binding is completely removed. Para obtener más información, consulte Prioridad de los valores de propiedades de dependencia.For details, see Dependency Property Value Precedence.

Descripción del enlace de datos en un nivel básico no se trata en este tema.Describing data binding at a basic level is not covered in this topic. Consulte Introducción al enlace de datos.See Data Binding Overview.

Nota

MultiBinding y PriorityBinding no admiten un XAMLXAML sintaxis de extensión.MultiBinding and PriorityBinding do not support a XAMLXAML extension syntax. En su lugar, usaría los elementos de propiedad.You would instead use property elements. Vea los temas de referencia para MultiBinding y PriorityBinding.See reference topics for MultiBinding and PriorityBinding.

Valores booleanos para XAML distinguen mayúsculas de minúsculas.Boolean values for XAML are case insensitive. Por ejemplo, puede especificar {Binding NotifyOnValidationError=true} o {Binding NotifyOnValidationError=True}.For example you could specify either {Binding NotifyOnValidationError=true} or {Binding NotifyOnValidationError=True}.

Los enlaces que implican la validación de datos se suelen especificar por explícita Binding elemento en lugar de como un {Binding ...} expresión y configuración ValidatesOnDataErrors o ValidatesOnExceptions en una expresión es raro.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. Esto es porque la propiedad complementaria ValidationRules no se puede establecer fácilmente en forma de expresión.This is because the companion property ValidationRules cannot be readily set in the expression form. Para obtener más información, consulte Implement Binding Validation.For more information, see Implement Binding Validation.

Binding es una extensión de marcado.Binding is a markup extension. Las extensiones de marcado se suelen implementar cuando hay un requisito para anular los valores de atributo para que sean valores literales o controlador de nombres y el requisito es más global que convertidores de tipos con atributos en determinados tipos o propiedades.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. Todas las extensiones de marcado en el uso XAML el { y } caracteres en su sintaxis de atributo, que es la convención que permite que un procesador XAML reconozca que una extensión de marcado debe procesar el contenido de cadena.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. Para más información, vea Extensiones de marcado y XAML de WPF.For more information, see Markup Extensions and WPF XAML.

Binding es una extensión de marcado inusual en el que el Binding clase que implementa la funcionalidad de extensión para la implementación de XAML de WPF también implementa varios otros métodos y propiedades que no están relacionados con 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. Se pretenden hacer que los demás miembros Binding una clase independiente y más versátil que puede resolver muchos escenarios de enlace de datos además de actuar como una extensión de marcado XAML.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.

Vea tambiénSee also