MultiDataTrigger Clase

Definición

Representa un desencadenador que aplica los valores de propiedades o realiza las acciones cuando los datos enlazados cumplen un conjunto de condiciones.

public ref class MultiDataTrigger sealed : System::Windows::TriggerBase, System::Windows::Markup::IAddChild
[System.Windows.Markup.ContentProperty("Setters")]
public sealed class MultiDataTrigger : System.Windows.TriggerBase, System.Windows.Markup.IAddChild
[<System.Windows.Markup.ContentProperty("Setters")>]
type MultiDataTrigger = class
    inherit TriggerBase
    interface IAddChild
Public NotInheritable Class MultiDataTrigger
Inherits TriggerBase
Implements IAddChild
Herencia
Atributos
Implementaciones

Ejemplos

En el ejemplo siguiente, la ItemsSource propiedad de ListBox está enlazada a Places, de ObservableCollection<T>Place objetos . Place los objetos tienen propiedades Name y State. La definición de Place y Places no se muestran.

Cada ListBoxItem una de las ListBox muestra un Place objeto . En Style el ejemplo se aplica a cada ListBoxItem. Los Condition elementos de MultiDataTrigger especifican que si y NameState del Place elemento de datos son Portland y OR , respectivamente, el fondo de correspondiente ListBoxItem se establece en Cyan.

<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>

Comentarios

Un MultiDataTrigger objeto es similar a , MultiTriggersalvo que las condiciones de un MultiDataTrigger se basan en valores de propiedad de datos enlazados en lugar de en los de .UIElement En , MultiDataTriggerse cumple una condición cuando el valor de propiedad del elemento de datos coincide con el especificado Value. A continuación, puede usar establecedores o las EnterActions propiedades y ExitActions para aplicar cambios o iniciar acciones cuando se cumplan todas las condiciones.

La Setters propiedad de un MultiDataTrigger objeto solo puede constar de Setter objetos. Agregar un Setter elemento secundario a un MultiDataTrigger objeto lo agrega implícitamente al SetterBaseCollection objeto para el MultiDataTrigger objeto . EventSetter no se admiten objetos; solo Style.Setters admite EventSetter objetos.

Para obtener información sobre cuándo usar desencadenadores y cuándo usar otras técnicas, consulte Información general sobre plantillas de datos.

Constructores

MultiDataTrigger()

Inicializa una nueva instancia de la clase MultiDataTrigger.

Propiedades

Conditions

Obtiene una colección de objetos Condition. Los cambios en los valores de propiedades se aplican cuando se cumplen todas las condiciones de la colección.

DependencyObjectType

Obtiene el DependencyObjectType objeto que encapsula el tipo CLR de esta instancia.

(Heredado de DependencyObject)
Dispatcher

Obtiene el objeto Dispatcher al que está asociado DispatcherObject.

(Heredado de DispatcherObject)
EnterActions

Obtiene una colección de objetos TriggerAction que se aplican cuando el objeto desencadenador pasa a estar activo. Esta propiedad no se aplica a la clase EventTrigger.

(Heredado de TriggerBase)
ExitActions

Obtiene una colección de objetos TriggerAction que se aplican cuando el objeto desencadenador pasa a estar inactivo. Esta propiedad no se aplica a la clase EventTrigger.

(Heredado de TriggerBase)
IsSealed

Obtiene un valor que indica si esta instancia está actualmente sellada (es de solo lectura).

(Heredado de DependencyObject)
Setters

Obtiene una colección de objetos Setter que describen los valores de propiedades que se van a aplicar cuando se cumplan todas las condiciones de MultiDataTrigger.

Métodos

CheckAccess()

Determina si el subproceso de la llamada tiene acceso a DispatcherObject.

(Heredado de DispatcherObject)
ClearValue(DependencyProperty)

Borra el valor local de una propiedad. La propiedad que se va a borrar se especifica mediante un identificador DependencyProperty.

(Heredado de DependencyObject)
ClearValue(DependencyPropertyKey)

Borra el valor local de una propiedad de solo lectura. La propiedad que se va a borrar se especifica mediante un DependencyPropertyKey.

(Heredado de DependencyObject)
CoerceValue(DependencyProperty)

Convierte el valor de la propiedad de dependencia especificada. Esto se logra invocando cualquier función CoerceValueCallback especificada en los metadatos de la propiedad de dependencia tal como existe en la clase DependencyObject que llama.

(Heredado de DependencyObject)
Equals(Object)

Determina si un objeto DependencyObject proporcionado es equivalente al objeto DependencyObject actual.

(Heredado de DependencyObject)
GetHashCode()

Obtiene un código hash de este objeto DependencyObject.

(Heredado de DependencyObject)
GetLocalValueEnumerator()

Crea un enumerador especializado para determinar qué propiedades de dependencia han establecido localmente los valores en DependencyObject.

(Heredado de DependencyObject)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
GetValue(DependencyProperty)

Devuelve el valor efectivo actual de una propiedad de dependencia en esta instancia de un DependencyObject.

(Heredado de DependencyObject)
InvalidateProperty(DependencyProperty)

Vuelve a evaluar el valor efectivo para la propiedad de dependencia especificada.

(Heredado de DependencyObject)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Se invoca cuando se actualiza el valor efectivo de alguna propiedad de dependencia en este DependencyObject. La propiedad de dependencia específica que cambió se notifica en los datos de evento.

(Heredado de DependencyObject)
ReadLocalValue(DependencyProperty)

Devuelve el valor local de una propiedad de dependencia, si existe.

(Heredado de DependencyObject)
SetCurrentValue(DependencyProperty, Object)

Establece el valor de una propiedad de dependencia sin cambiar el origen del valor.

(Heredado de DependencyObject)
SetValue(DependencyProperty, Object)

Establece el valor local de una propiedad de dependencia, especificado mediante el identificador de la propiedad de dependencia.

(Heredado de DependencyObject)
SetValue(DependencyPropertyKey, Object)

Establece el valor local de una propiedad de dependencia de solo lectura, especificado por el identificador DependencyPropertyKey de la propiedad de dependencia.

(Heredado de DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Devuelve un valor que indica si los procesos de serialización deben serializar el valor de la propiedad de dependencia especificada.

(Heredado de DependencyObject)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
VerifyAccess()

Exige que el subproceso de la llamada tenga acceso a DispatcherObject.

(Heredado de DispatcherObject)

Implementaciones de interfaz explícitas

IAddChild.AddChild(Object)

Agrega un objeto secundario.

IAddChild.AddText(String)

Agrega el contenido de texto de un nodo al objeto.

Se aplica a

Consulte también