Enlazar extensión de marcado
Actualización: noviembre 2007
Difiere un valor de la propiedad que va a ser un valor enlazado a datos, creando un objeto de expresión intermedio e interpretando el contexto de datos que se aplica al elemento en tiempo de ejecución.
Uso de atributos XAML
<object property="{Binding}" .../>
O bien
<object property="{Binding bindingPropertyName1=value,
bindingPropertyName2=value,
bindingPropertyNameN=value}" ...
/>
Uso de elementos de objeto XAML
<object>
<object.property>
<Binding/>
</object.property>
</object>
O bien
<object>
<object.property>
<Binding bindingPropertyName1="value"
bindingPropertyName2="value"
bindingPropertyNameN="value"
/>
</object.property>
</object>
Cualquiera de las propiedades enumeradas a continuación, que se establecerían como un par propiedad=valor en la sintaxis de atributo del ejemplo, en lugar de ello se pueden establecer como atributos del elemento Binding, como se define en la sintaxis de elementos de objeto.
Valores XAML
bindingPropertyName# |
Propiedad Name de la propiedad de Binding que se va a establecer. No todas las propiedades de Binding se pueden establecer con la extensión de enlace y algunas de ellas únicamente se pueden establecer mediante extensiones de marcado anidadas adicionales. Consulte la sección "Propiedades de enlace que se pueden establecer con la extensión de enlace". |
value |
Valor en que se establecerá la propiedad. El control del valor de atributo es, en definitiva, específico del tipo y la lógica de bindingPropertyName que se establece. |
Propiedades de enlace que se pueden establecer con la extensión de enlace
En la sintaxis mostrada en este tema se utiliza la aproximación genérica bindingPropertyName=value, porque hay muchas propiedades de lectura y escritura de BindingBase o Binding que se pueden establecer mediante la sintaxis de la extensión de marcado Binding. Se pueden establecer en cualquier orden. Básicamente, puede establecer cero o más de las propiedades de la lista siguiente, mediante pares propiedad=valor separados por comas.
Varios de estos valores de propiedad requieren tipos de objetos que no admiten una conversión de tipos nativa y, en consecuencia, exigen establecer usos de extensión de marcado adicionales en XAML como valores de atributo. Consulte la sección Uso de atributos XAML de la referencia correspondiente a cada propiedad para determinar la sintaxis de atributo apropiada.
BindsDirectlyToSource: tipo Boolean, puede ser true o false.
Converter: se puede establecer en XAML, pero para ello se requiere una referencia a un objeto, como una Extensión de marcado StaticResource.
ConverterCulture: se puede establecer como un identificador basado en normas; consulte la referencia correspondiente a ConverterCulture.
ConverterParameter: si se pasa un tipo por referencia, requiere una referencia a objeto, como una Extensión de marcado StaticResource.
ElementName: mutuamente excluyente con respecto a RelativeSource, Source; cada una de estas propiedades representa una metodología de enlace determinada. Consulte Información general sobre el enlace de datos.
FallbackValue: si se pasa un tipo por referencia, requiere una referencia a objeto, como una Extensión de marcado StaticResource.
Path: consulte Sintaxis de PropertyPath de XAML.
RelativeSource: mutuamente excluyente con respecto a ElementName, Source; cada una de estas propiedades representa una metodología de enlace determinada. Consulte Información general sobre el enlace de datos. Requiere el uso de Extensión de marcado RelativeSource.
Source: mutuamente excluyente con respecto a RelativeSource, ElementName; cada una de estas propiedades representa una metodología de enlace determinada. Consulte Información general sobre el enlace de datos. Requiere una referencia a objeto, como una Extensión de marcado StaticResource.
Las siguientes son propiedades de Binding que no se pueden establecer mediante la extensión de marcado Binding.
Comentarios
Los marcadores de posición bindingPropertyName proporcionados aquí corresponden a los nombres de algunas de las propiedades que se pueden establecer declaradas de la clase Binding y las cadenas de valor son equivalentes a cómo se establecerían esos valores de propiedades como atributos XAML dentro de un objeto Binding declarado como un elemento XAML.
Aquí no se describe el enlace de datos como concepto; consulte Información general sobre el enlace de datos para obtener conceptos y Información general sobre declaraciones de enlaces para obtener más detalles sobre sintaxis alternativas. La explicación de sintaxis alternativas incluye cómo crear enlaces equivalentes en varias sintaxis posibles, tales como las propiedades de atributo de un elemento de objeto Binding en XAML, la sintaxis de elementos de propiedad de Binding, o la creación mediante procedimiento de un enlace utilizando el método SetBinding o el constructor Binding.
Nota importante: |
---|
Por lo que se refiere a la prioridad de las propiedades de dependencia, una expresión Binding es equivalente a un valor establecido localmente. Si establece un valor local para una propiedad que previamente tenía una expresión Binding, Binding se quita totalmente. Para obtener información detallada, consulte Prioridad de los valores de propiedades de dependencia. |
Nota
MultiBinding y PriorityBinding no admiten la sintaxis de extensiones XAML (aunque comparten la misma clase BindingBase, que en realidad implementa el comportamiento de XAML para Binding).
Binding es una extensión de marcado. Las extensiones de marcado se suelen implementar cuando se necesita que los valores de los atributos de escape no sean valores literales o nombres de controladores, y este requisito es de índole más global que limitarse a colocar los convertidores de tipos en determinados tipos o propiedades. Todas las extensiones de marcado de XAML utilizan los caracteres { y } en su sintaxis de atributo, que es la convención que permite que un procesador XAML reconozca que el atributo se debe procesar mediante una extensión de marcado. Para obtener más información, consulte Extensiones de marcado y XAML. Binding es una extensión de marcado inusual porque la clase Binding que implementa la funcionalidad de la extensión también implementa otros métodos y propiedades. Estos otros miembros no constituyen un requisito directo para la funcionalidad de la extensión de marcado. Estos miembros están dirigidos a aumentar la versatilidad y autonomía de la clase Binding para que sea capaz de resolver numerosos escenarios de enlace de datos además de actuar como extensión de marcado XAML.
Vea también
Conceptos
Información general sobre el enlace de datos
Información general sobre declaraciones de enlaces
Información general sobre XAML