¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
DataTrigger (Clase)
Collapse the table of content
Expand the table of content

DataTrigger (Clase)

Actualización: noviembre 2007

Representa un desencadenador que aplica valores de propiedad o realiza acciones cuando los datos enlazados cumplen la condición especificada.

Espacio de nombres:  System.Windows
Ensamblado:  PresentationFramework (en PresentationFramework.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/xaml/presentation

[ContentPropertyAttribute("Setters")]
public class DataTrigger : TriggerBase, 
	IAddChild
/** @attribute ContentPropertyAttribute("Setters") */
public class DataTrigger extends TriggerBase implements IAddChild
public class DataTrigger extends TriggerBase implements IAddChild
<DataTrigger>
  Setters
</DataTrigger>

Style, ControlTemplate y DataTemplate tienen una colección de desencadenadores. DataTrigger permite establecer valores de propiedad cuando el valor de propiedad del objeto de datos coincide con el valor de Value especificado. Por ejemplo, si muestra una lista de objetos Employee, quizás desee que el color de primer plano sea diferente según la actual disponibilidad de cada Employee's. (Por ejemplo, los objetos Employees que están actualmente de vacaciones se muestran con un primer plano de color púrpura.) En algunos casos, puede que sea más conveniente crear un convertidor o utilizar un control DataTemplateSelector. Para obtener más información, vea Información general sobre plantillas de datos.

Observe que debe especificar las propiedades Binding y Value en un objeto DataTrigger para que el desencadenador de datos tenga sentido. Si no se especifica una o ninguna de las propiedades, se produce una excepción.

La propiedad Setters de un objeto DataTrigger sólo puede estar formada por objetos Setter. Al agregar un elemento secundario de Setter a un objeto DataTrigger, ese elemento se agrega implícitamente a la colección SetterBaseCollection del objeto DataTrigger. No se admiten objetos EventSetter; sólo Style.Setters admite objetos EventSetter.

En el siguiente ejemplo, la propiedad ItemsSource de ListBox está enlazada a Places, una colección ObservableCollection<T> de objetos Place. Los objetos Place tienen las propiedades Name y State. No se muestra la definición de Place ni de Places, pero se puede encontrar en Ejemplo Binding Using Data Triggers.

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

El valor de DataTrigger se ha especificado de modo que, si el valor de State del elemento de datos Place es "WA", el color del primer plano del correspondiente control ListBoxItem se establezca 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>


Más código

Cómo: Activar una animación cuando se cambian datosEn este ejemplo se muestra cómo utilizar un objeto DataTrigger, una acción BeginStoryboard y un objeto Storyboard para animar una propiedad cuando los datos enlazados cumplen la condición especificada. DataTrigger se puede usar en un objeto Style, ControlTemplate o DataTemplate.

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows Vista

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft