Compartir a través de


Binding Clase

Definición

Define un enlace que conecta las propiedades de los destinos de enlace y los orígenes de datos.

/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Binding : BindingBase
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class Binding : BindingBase
Public Class Binding
Inherits BindingBase
<Binding .../>
- or -
<dependencyobject dependencyproperty="{Binding bindingArgs}" />
Herencia
Object IInspectable DependencyObject BindingBase Binding
Atributos

Requisitos de Windows

Familia de dispositivos
Windows 10 (se introdujo en la versión 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)

Ejemplos

En el ejemplo de código siguiente se muestra cómo crear un enlace en XAML. Para obtener la lista de código completa, consulta el ejemplo de enlace de datos XAML.

<StackPanel Margin="5">

  <TextBlock Text="Name:" Style="{StaticResource DescriptionTextStyle}" 
    Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>

  <TextBox Text="{Binding Path=Name, Mode=TwoWay}" 
    Width="350" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>

  <TextBlock Text="Organization:" Style="{StaticResource DescriptionTextStyle}" 
    Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>

  <!-- You can omit the 'Path=' portion of the binding expression. --> 
  <TextBox Text="{Binding Organization, Mode=TwoWay}" Width="350" 
    Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top"/>

</StackPanel>

En el código de ejemplo siguiente se muestra cómo crear un enlace en el código.

// Create the source string.
string s = "Hello";

// Create the binding description.
Binding b = new Binding();
b.Mode = BindingMode.OneTime;
b.Source = s;

// Attach the binding to the target.
TextBlock MyText = new TextBlock();
MyText.SetBinding(TextBlock.TextProperty, b);
// Create the source string.
String^ s = ref new String(L"Hello");

// Create the binding description.
Binding^ b = ref new Binding();
b->Mode = BindingMode::OneTime;
b->Source = s;

// Attach the binding to the target.
TextBlock^ MyText = ref new TextBlock();
MyText->SetBinding(MyText->TextProperty, b);
'Create the source string 
Dim s As String = "Hello"

'Create the binding description 
Dim b As New Binding()
b.Mode = BindingMode.OneTime
b.Source = s

'Attach the binding to the target 
Dim MyText As New TextBlock()
MyText.SetBinding(TextBlock.TextProperty, b)

Comentarios

La extensión de marcado {Binding} permite especificar un valor binding como una cadena de atributo único en XAML, incluida la configuración de propiedades Binding como Path y Source. Para obtener más información sobre los conceptos de enlace de datos, consulte Enlace de datos en profundidad.

La clase Binding puede considerarse la exposición de código subyacente de la extensión de marcado {Binding}. Si un enlace ya se aplica a un destino (que sucede cuando se carga el XAML), no se pueden establecer las propiedades de lectura y escritura de un objeto Binding para cambiar el comportamiento de un enlace en tiempo de ejecución. Cualquier enlace definido por XAML debe considerarse inmutable. Pero puede crear un nuevo objeto Binding, establecer sus propiedades y establecer un nuevo enlace en un destino de elemento de interfaz de usuario específico mediante FrameworkElement.SetBinding. Para obtener más información, consulte Creación de enlaces en el código.

Un objeto Binding conecta una propiedad de dependencia de un FrameworkElement directamente a un objeto de datos para que las actualizaciones del objeto de datos se propaguen automáticamente a la propiedad que usa el enlace de datos. La clase Binding define las propiedades de un enlace. Cada enlace debe tener un elemento de destino, una propiedad de destino y un origen de datos, aunque algunos valores se proporcionan de forma predeterminada si no los especifica.

Para enlazar a una propiedad o una subpropeta en un objeto de datos, establezca la propiedad Path del objeto Binding. Para obtener más información sobre cómo establecer Path en el código o en XAML, consulta Sintaxis de ruta de acceso de propiedad o extensión de marcado {Binding}.

Puede aplicar una instancia de una clase Binding a varios destinos. Sin embargo, no se pueden modificar los valores de propiedad de un objeto Binding después de adjuntarlos a un elemento de destino.

Nota:

Llamar al método FrameworkElement.SetBinding y pasar un nuevo objeto Binding no eliminará necesariamente un enlace existente. En su lugar, debe usar el método DependencyObject.ClearValue .

Para obtener más información sobre el uso de atributos XAML para las propiedades que pueden tomar un enlace o que se pueden establecer en un valor enlazado a datos, consulta extensión de marcado {Binding}.

La propiedad que es el destino de un enlace de datos debe ser una propiedad de dependencia. Para obtener más información, consulta Introducción a las propiedades de dependencia.

Constructores

Binding()

Inicializa una nueva instancia de la clase Binding .

Propiedades

Converter

Obtiene o establece el objeto de convertidor al que llama el motor de enlace para modificar los datos a medida que se pasan entre el origen y el destino, o viceversa.

ConverterLanguage

Obtiene o establece un valor que asigna un nombre al idioma que se va a pasar a cualquier convertidor especificado por la propiedad Converter .

ConverterParameter

Obtiene o establece un parámetro que se puede usar en la lógica del convertidor .

Dispatcher

Obtiene el CoreDispatcher al que está asociado este objeto. CoreDispatcher representa una instalación que puede tener acceso a DependencyObject en el subproceso de interfaz de usuario incluso si un subproceso que no es de interfaz de usuario inicia el código.

(Heredado de DependencyObject)
ElementName

Obtiene o establece el nombre del elemento que se va a usar como origen de enlace para binding.

FallbackValue

Obtiene o establece el valor que se usa cuando el enlace no puede devolver un valor.

Mode

Obtiene o establece un valor que indica la dirección del flujo de datos en el enlace.

Path

Obtiene o establece la ruta de acceso a la propiedad de origen de enlace.

RelativeSource

Obtiene o establece el origen de enlace especificando su ubicación en relación con la posición del destino de enlace. Esto suele usarse en los enlaces dentro de plantillas de control XAML,

Source

Obtiene o establece el origen de datos para el enlace.

TargetNullValue

Obtiene o establece el valor que se usa en el destino cuando el valor del origen es NULL.

UpdateSourceTrigger

Obtiene o establece un valor que determina el tiempo de las actualizaciones de origen de enlace para los enlaces bidireccionales.

Métodos

ClearValue(DependencyProperty)

Borra el valor local de una propiedad de dependencia.

(Heredado de DependencyObject)
GetAnimationBaseValue(DependencyProperty)

Devuelve cualquier valor base establecido para una propiedad de dependencia, que se aplicaría en los casos en los que una animación no está activa.

(Heredado de DependencyObject)
GetValue(DependencyProperty)

Devuelve el valor efectivo actual de una propiedad de dependencia de dependencyObject.

(Heredado de DependencyObject)
ReadLocalValue(DependencyProperty)

Devuelve el valor local de una propiedad de dependencia, si se establece un valor local.

(Heredado de DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registra una función de notificación para escuchar los cambios en una dependencyProperty específica en esta instancia de DependencyObject .

(Heredado de DependencyObject)
SetValue(DependencyProperty, Object)

Establece el valor local de una propiedad de dependencia en dependencyObject.

(Heredado de DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Cancela una notificación de cambio registrada anteriormente llamando a RegisterPropertyChangedCallback.

(Heredado de DependencyObject)

Se aplica a

Consulte también