Compartir vía


DataTrigger.Value Propiedad

Definición

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.

Se aplica a

Consulte también