DataTrigger.Value Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece el valor que se va a comparar con el valor de propiedad del objeto de datos.
public:
property System::Object ^ Value { System::Object ^ get(); void set(System::Object ^ value); };
[System.Windows.Localizability(System.Windows.LocalizationCategory.None, Readability=System.Windows.Readability.Unreadable)]
[System.Windows.Markup.DependsOn("Binding")]
public object Value { get; set; }
[<System.Windows.Localizability(System.Windows.LocalizationCategory.None, Readability=System.Windows.Readability.Unreadable)>]
[<System.Windows.Markup.DependsOn("Binding")>]
member this.Value : obj with get, set
Public Property Value As Object
Valor de propiedad
El valor predeterminado es null. Consulte también la sección Excepciones.
- Atributos
Excepciones
No se admiten expresiones. No se admiten enlaces.
Ejemplos
En el ejemplo siguiente, el ItemsSource de ListBox está enlazado a Places, un ObservableCollection<T> de Place objetos .
Place los objetos tienen propiedades Name y State.
Cada uno ListBoxItem de los ListBox muestra un Place objeto . En Style el ejemplo se aplica a cada ListBoxItem.
DataTrigger se especifica de forma que si el StatePlace del elemento de datos es "WA", el primer plano de la correspondiente ListBoxItem se establece en Rojo.
<Window.Resources>
<c:Places x:Key="PlacesData"/>
<Style TargetType="ListBoxItem">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=State}" Value="WA">
<Setter Property="Foreground" Value="Red" />
</DataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=Name}" Value="Portland" />
<Condition Binding="{Binding Path=State}" Value="OR" />
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="Cyan" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
<DataTemplate DataType="{x:Type c:Place}">
<Canvas Width="160" Height="20">
<TextBlock FontSize="12"
Width="130" Canvas.Left="0" Text="{Binding Path=Name}"/>
<TextBlock FontSize="12" Width="30"
Canvas.Left="130" Text="{Binding Path=State}"/>
</Canvas>
</DataTemplate>
</Window.Resources>
<StackPanel>
<TextBlock FontSize="18" Margin="5" FontWeight="Bold"
HorizontalAlignment="Center">Data Trigger Sample</TextBlock>
<ListBox Width="180" HorizontalAlignment="Center" Background="Honeydew"
ItemsSource="{Binding Source={StaticResource PlacesData}}"/>
</StackPanel>
En el ejemplo siguiente se muestran dos DataTriggers que se definen en .DataTemplate
DataTemplate se aplica a AuctionItem los objetos de datos (no se muestran en este ejemplo), que tienen la propiedad SpecialFeatures.
La primera DataTrigger se especifica de forma que si el objeto de datos tiene un SpecialFeatures valor de Color, el elemento se muestra con un fondo DodgerBlue con títulos de la Armada. Si el objeto de datos tiene un SpecialFeatures valor de Highlight, el segundo DataTrigger estará activo, lo que hará que el elemento se muestre con un borde Naranja con una estrella.
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=SpecialFeatures}">
<DataTrigger.Value>
<src:SpecialFeatures>Color</src:SpecialFeatures>
</DataTrigger.Value>
<DataTrigger.Setters>
<Setter Property="BorderBrush" Value="DodgerBlue" TargetName="border" />
<Setter Property="Foreground" Value="Navy" TargetName="descriptionTitle" />
<Setter Property="Foreground" Value="Navy" TargetName="currentPriceTitle" />
<Setter Property="BorderThickness" Value="3" TargetName="border" />
<Setter Property="Padding" Value="5" TargetName="border" />
</DataTrigger.Setters>
</DataTrigger>
<DataTrigger Binding="{Binding Path=SpecialFeatures}">
<DataTrigger.Value>
<src:SpecialFeatures>Highlight</src:SpecialFeatures>
</DataTrigger.Value>
<Setter Property="BorderBrush" Value="Orange" TargetName="border" />
<Setter Property="Foreground" Value="Navy" TargetName="descriptionTitle" />
<Setter Property="Foreground" Value="Navy" TargetName="currentPriceTitle" />
<Setter Property="Visibility" Value="Visible" TargetName="star" />
<Setter Property="BorderThickness" Value="3" TargetName="border" />
<Setter Property="Padding" Value="5" TargetName="border" />
</DataTrigger>
</DataTemplate.Triggers>
Comentarios
Uso de elementos de propiedad XAML
<object>
<object.Value>
Value
</object.Value>
</object>
Este valor se compara con el valor de propiedad generado por la Binding propiedad de DataTrigger. La comparación es una comprobación de igualdad de referencia. Si los dos valores son iguales, se aplican las acciones o establecedores asociados.
Nota:
Debe especificar las Binding propiedades y Value en para DataTrigger que el desencadenador de datos sea significativo. Si no se establecen una o ambas propiedades, se produce una excepción.