Ejemplos avanzados de Binding

mayo 15, 2009 13:54 by marcossanchez

La extensión de marcado Binding en XAML es muy configurable, de forma que podemos usarlo de multitud de maneras para conseguir enlazar una propiedad de un control con cualquier otro elemento o propiedad que queramos. A continuación veremos algunos ejemplos:

Enlace entre controles:

      A) Directamente:

<Slider x:Name="slider" Minimum="0" Maximum="300" Value="50" />
<Rectangle Width="{Binding Path=Value, ElementName=slider}" Height="100" Fill="Red" />

 

     B) Buscando a través del árbol visual del elemento:

Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ComboBoxItem}}, Path=IsSelected}"

Utilizando Converters:

Height="{Binding ElementName=txtCategoria1, Path=Text, Converter={StaticResource StringToHeight}} 

Con el Converter StringToHeight podemos convertir una cadena de caracteres en un entero que se aplicará a la propiedad Height del control. La regla de conversión la define el programador.

Enlace a un elemento de una colección:

<TextBlock Text="{Binding Path=Collection[index].PropertyName}"/>

 

Un ejemplo final que combina alguno de los anteriores. Se usa para asignar la propiedad Tooltip de un elemento (por ejemplo un TextBox) cuando la validación del elemento falla:

<Trigger Property="Validation.HasError" Value="True">
    <Setter Property="ToolTip" Value="{Binding Path=(Validation.Errors)[0].ErrorContent, RelativeSource={x:Static RelativeSource.Self}}" />
</Trigger>


Sea el primero en calificar este post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5