Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

PriorityBinding (Clase)

Describe una colección de objetos Binding asociado a una propiedad de destino de enlace , que recibe su valor del primer enlace en la colección que genera un valor correctamente.

Espacio de nombres:  System.Windows.Data
Ensamblado:  PresentationFramework (en PresentationFramework.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[ContentPropertyAttribute("Bindings")]
public class PriorityBinding : BindingBase, 
	IAddChild
<PriorityBinding>
  Bindings
</PriorityBinding>

El tipo PriorityBinding expone los siguientes miembros.

  NombreDescripción
Método públicoPriorityBindingInicializa una nueva instancia de la clase de PriorityBinding .
Arriba

  NombreDescripción
Propiedad públicaBindingGroupNameObtiene o establece el nombre de BindingGroup a las que este enlace pertenece. (Se hereda de BindingBase).
Propiedad públicaBindingsObtiene la colección de objetos Binding que se establece para esta instancia de PriorityBinding.
Propiedad públicaDelayObtiene o establece la cantidad de tiempo, en milisegundos, que hay que esperar antes de actualizar el origen de enlace después de que el valor en el destino. (Se hereda de BindingBase).
Propiedad públicaFallbackValueObtiene o establece el valor que se va a usar cuando el enlace no puede devolver un valor. (Se hereda de BindingBase).
Propiedad públicaStringFormatObtiene o establece una cadena que especifica cómo dar formato al enlace si muestra el valor enlazado como cadena. (Se hereda de BindingBase).
Propiedad públicaTargetNullValueObtiene o establece el valor que se usa en el destino cuando el valor de origen es null. (Se hereda de BindingBase).
Arriba

  NombreDescripción
Método públicoEquals(Object)Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object).
Método protegidoFinalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método públicoGetHashCode Sirve como una función hash para un tipo en particular. (Se hereda de Object).
Método públicoGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método protegidoMemberwiseClone Crea una copia superficial del Object actual. (Se hereda de Object).
Método públicoProvideValueDevuelve un objeto que se debe establecer en la propiedad donde se aplican este enlace y extensión. (Se hereda de BindingBase).
Método públicoShouldSerializeBindingsDevuelve un valor que indica si los procesos de serialización debe serializar el valor efectivo de una propiedad de Bindings en instancias de esta clase.
Método públicoShouldSerializeFallbackValueDevuelve un valor que indica si los procesos de serialización debe serializar el valor efectivo de una propiedad de FallbackValue en instancias de esta clase. (Se hereda de BindingBase).
Método públicoShouldSerializeTargetNullValueDevuelve un valor que indica si la propiedad de TargetNullValue debe ser serializado. (Se hereda de BindingBase).
Método públicoToString Retorna una cadena que representa al objeto actual. (Se hereda de Object).
Arriba

  NombreDescripción
Implementación explícita de interfacesMétodo privadoIAddChild.AddChildEste miembro es compatible con la infraestructura de Windows Presentation Foundation (WPF) y no está diseñado para usarse directamente desde el código.
Implementación explícita de interfacesMétodo privadoIAddChild.AddTextEste miembro es compatible con la infraestructura de Windows Presentation Foundation (WPF) y no está diseñado para usarse directamente desde el código.
Arriba

PriorityBinding permite asociar una propiedad de destino de enlace (destino) con una lista de enlaces. El primer enlace que devuelve correctamente un valor se convierte en el enlace activo.

Un enlace devuelve correctamente un valor si:

  1. La ruta de acceso a origen de enlace resuelve correctamente.

  2. El convertidor de valores, si existe, puede convertir el valor resultante.

  3. El valor resultante es válido para la propiedad de destino.

El valor DependencyProperty.UnsetValue no se considera un valor devuelto correctamente.

La prioridad de los enlaces viene determinada por su orden en la lista. El enlace que ocurre primero en la lista tiene la prioridad máxima.

El motor de enlace empieza con el primer enlace en la lista y comprueba si ese enlace devuelve correctamente un valor; si lo hace, el valor de este enlace se utiliza. Si el primer enlace no devuelve correctamente un valor, el motor de enlace examina el segundo enlace para determinar si devuelve correctamente un valor; si lo hace, el valor del segundo enlace se convierte en la configuración activa. Este proceso de comprobación continúa hasta el final de la lista de enlaces. Si ninguno de los enlaces devuelven un valor correctamente, el enlace utiliza FallbackValue.

El motor de enlace continúa la escucha de cambios en todos los enlaces. Si en cualquier momento uno de los enlaces que tiene una prioridad devuelve correctamente un valor, el valor de ese enlace se convierte en el valor activo y reemplaza el valor actual.

PriorityBinding en Windows Presentation Foundation (WPF) funciona especificando una lista de enlaces. La lista de enlaces se ordena por orden de prioridad descendente. Si el enlace de máxima prioridad devuelve correctamente un valor cuando se procesa, entonces nunca es necesario procesar los demás enlaces de la lista. Puede suceder que el enlace de máxima prioridad tarde mucho tiempo en evaluarse; si esto ocurre, se utilizará el enlace con el siguiente nivel de prioridad que devuelva correctamente un valor hasta que un enlace con una prioridad superior devuelva correctamente un valor.

Para mostrar cómo funciona PriorityBinding, se ha creado el objeto AsyncDataSource con las tres propiedades siguientes: FastDP, SlowerDP y SlowestDP.

El descriptor de acceso get de FastDP devuelve el valor del miembro de datos _fastDP.

El descriptor de acceso get de SlowerDP espera durante 3 segundos antes de devolver el valor del miembro de datos _slowerDP.

El descriptor de acceso get de SlowestDP espera durante 5 segundos antes de devolver el valor del miembro de datos _slowestDP.

NotaNota

El único fin de este ejemplo es usarlo para realizar una demostración. Las instrucciones de Microsoft .NET no recomiendan la definición de propiedades con órdenes de magnitud más lentos que los de un conjunto de campos. Para obtener más información, consulte Choosing Between Properties and Methods.


public class AsyncDataSource
{
	private string _fastDP;
	private string _slowerDP;
	private string _slowestDP;

	public AsyncDataSource()
	{
	}

	public string FastDP
	{
    get { return _fastDP; }
    set { _fastDP = value; }
	}

	public string SlowerDP
	{
    get
    {
      // This simulates a lengthy time before the
      // data being bound to is actualy available.
      Thread.Sleep(3000);
      return _slowerDP;
    }
    set { _slowerDP = value; }
	}

	public string SlowestDP
	{
    get
    {
      // This simulates a lengthy time before the
      // data being bound to is actualy available.
      Thread.Sleep(5000);
      return _slowestDP;
    }
    set { _slowestDP = value; }
	}
}


La propiedad Text se enlaza al AsyncDS anterior utilizando PriorityBinding:


<Window.Resources>
  <c:AsyncDataSource SlowestDP="Slowest Value" SlowerDP="Slower Value"
                     FastDP="Fast Value" x:Key="AsyncDS" />
</Window.Resources>
	
<StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"
  DataContext="{Binding Source={StaticResource AsyncDS}}">
  <TextBlock FontSize="18" FontWeight="Bold" Margin="10"
    HorizontalAlignment="Center">Priority Binding</TextBlock>
  <TextBlock Background="Honeydew" Width="100" HorizontalAlignment="Center">
    <TextBlock.Text>
      <PriorityBinding FallbackValue="defaultvalue">
        <Binding Path="SlowestDP" IsAsync="True"/>
        <Binding Path="SlowerDP" IsAsync="True"/>
        <Binding Path="FastDP" />
      </PriorityBinding>
    </TextBlock.Text>
  </TextBlock>	
</StackPanel>


Cuando el motor de enlace procesa los objetos Binding, comienza por el primer objeto Binding, que está enlazado a la propiedad SlowestDP. Cuando se procesa este objeto Binding, no devuelve correctamente un valor porque está inactivo durante 5 segundos, por lo que se procesa el elemento Binding siguiente. El Binding siguiente no devuelve correctamente un valor porque está inactivo durante 3 segundos. Entonces, el motor de enlace pasa al elemento Binding siguiente, que está enlazado a la propiedad FastDP. Este objeto Binding devuelve el valor "Fast Value". Ahora, TextBlock muestra el valor "Fast Value".

Una vez transcurridos 3 segundos, la propiedad SlowerDP devuelve el valor "Slower Value". Entonces, TextBlock muestra el valor "Slower Value".

Una vez transcurridos 5 segundos, la propiedad SlowestDP devuelve el valor "Slowest Value". Este enlace es el de máxima prioridad, porque figura en primer lugar en la lista. Ahora, TextBlock muestra el valor "Slowest Value".

Consulte PriorityBinding para obtener información sobre qué se considera un valor devuelto correctamente de un enlace.

.NET Framework

Compatible con: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros públicos static (Shared en Visual Basic) de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft