Compartir vía


DataTrigger.Value Propiedad

Definición

Obtiene o establece el valor que se compara 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. Vea 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 objetos Place . Los objetos Place tienen propiedades Name y State.

Cada ListBoxItem una de las ListBox muestra un objeto Place . En Style el ejemplo se aplica a cada ListBoxItem.

se DataTrigger especifica de modo que si el estado del elemento de datos Place es "WA", el primer plano del 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 DataTriggerque se definen en .DataTemplate DataTemplate se aplica a objetos de datos AuctionItem (no se muestran en este ejemplo), que tienen la propiedad SpecialFeatures. Consulte Demostración de enlace de datos para obtener el ejemplo completo.

La primera DataTrigger se especifica de forma que si el objeto de datos tiene un valor SpecialFeatures de Color, el elemento se muestra con un fondo DodgerBlue con títulos de la Marina. Si el objeto de datos tiene un valor SpecialFeatures 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 la igualdad de referencias. Si los dos valores son iguales, se aplican las acciones o establecedores asociados.

Tenga en cuenta que 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 producirá una excepción.

Se aplica a

Consulte también