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