Condividi tramite


MultiDataTrigger Classe

Definizione

Rappresenta un trigger che applica i valori delle proprietà o esegue azioni quando i dati associati soddisfano un set di condizioni.

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
Ereditarietà
Attributi
Implementazioni

Esempio

Nell'esempio seguente la ItemsSource proprietà di ListBox è associata a Places, un ObservableCollection<T> di Place oggetti . Place gli oggetti hanno proprietà Name e State. La definizione di Place e Places non viene visualizzata.

Ognuno ListBoxItem di ListBox essi visualizza un Place oggetto . Nell'esempio Style viene applicato a ogni ListBoxItemoggetto . Gli Condition elementi dell'oggetto MultiDataTrigger specificano che se e StateName dell'elemento Place di dati sono Portland eOR, rispettivamente, lo sfondo del corrispondente ListBoxItem viene impostato su 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>

Commenti

Un MultiDataTrigger oggetto è simile a un MultiTriggeroggetto , ad eccezione del fatto che le condizioni di un MultiDataTrigger oggetto sono basate sui valori delle proprietà dei dati associati anziché su quelli di un oggetto UIElement. In una MultiDataTriggercondizione viene soddisfatta quando il valore della proprietà dell'elemento di dati corrisponde all'oggetto specificato Value. È quindi possibile usare setter o EnterActions le proprietà e ExitActions per applicare modifiche o avviare azioni quando vengono soddisfatte tutte le condizioni.

La Setters proprietà di un MultiDataTrigger oggetto può essere costituita solo da Setter oggetti . L'aggiunta di un Setter elemento figlio a un MultiDataTrigger oggetto lo aggiunge in modo implicito all'oggetto SetterBaseCollection per l'oggetto MultiDataTrigger . EventSettergli oggetti non sono supportati; supporta EventSetter solo Style.Setters oggetti.

Per informazioni su quando usare i trigger e quando usare altre tecniche, vedere Cenni preliminari sulla creazione di modelli di dati.

Costruttori

Nome Descrizione
MultiDataTrigger()

Inizializza una nuova istanza della classe MultiDataTrigger.

Proprietà

Nome Descrizione
Conditions

Ottiene una raccolta di Condition oggetti . Le modifiche apportate ai valori delle proprietà vengono applicate quando vengono soddisfatte tutte le condizioni dell'insieme.

DependencyObjectType

Ottiene l'oggetto DependencyObjectType che esegue il wrapping del tipo CLR di questa istanza.

(Ereditato da DependencyObject)
Dispatcher

Ottiene l'oggetto DispatcherDispatcherObject a cui è associato.

(Ereditato da DispatcherObject)
EnterActions

Ottiene una raccolta di TriggerAction oggetti da applicare quando l'oggetto trigger diventa attivo. Questa proprietà non si applica alla EventTrigger classe .

(Ereditato da TriggerBase)
ExitActions

Ottiene una raccolta di TriggerAction oggetti da applicare quando l'oggetto trigger diventa inattivo. Questa proprietà non si applica alla EventTrigger classe .

(Ereditato da TriggerBase)
IsSealed

Ottiene un valore che indica se questa istanza è attualmente sealed (sola lettura).

(Ereditato da DependencyObject)
Setters

Ottiene una raccolta di Setter oggetti che descrivono i valori delle proprietà da applicare quando vengono soddisfatte tutte le condizioni di MultiDataTrigger .

Metodi

Nome Descrizione
CheckAccess()

Determina se il thread chiamante ha accesso a questo DispatcherObjectoggetto .

(Ereditato da DispatcherObject)
ClearValue(DependencyProperty)

Cancella il valore locale di una proprietà. La proprietà da cancellare viene specificata da un DependencyProperty identificatore.

(Ereditato da DependencyObject)
ClearValue(DependencyPropertyKey)

Cancella il valore locale di una proprietà di sola lettura. La proprietà da cancellare viene specificata da un oggetto DependencyPropertyKey.

(Ereditato da DependencyObject)
CoerceValue(DependencyProperty)

Forza il valore della proprietà di dipendenza specificata. A tale scopo, richiamare qualsiasi CoerceValueCallback funzione specificata nei metadati della proprietà per la proprietà di dipendenza così come esiste nella chiamata DependencyObjectdi .

(Ereditato da DependencyObject)
Equals(Object)

Determina se un oggetto specificato DependencyObject è equivalente all'oggetto corrente DependencyObject.

(Ereditato da DependencyObject)
GetHashCode()

Ottiene un codice hash per l'oggetto DependencyObject.

(Ereditato da DependencyObject)
GetLocalValueEnumerator()

Crea un enumeratore specializzato per determinare quali proprietà di dipendenza hanno valori impostati localmente in questo DependencyObjectoggetto .

(Ereditato da DependencyObject)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
GetValue(DependencyProperty)

Restituisce il valore effettivo corrente di una proprietà di dipendenza in questa istanza di un oggetto DependencyObject.

(Ereditato da DependencyObject)
InvalidateProperty(DependencyProperty)

Rivaluta il valore effettivo per la proprietà di dipendenza specificata.

(Ereditato da DependencyObject)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Richiamato ogni volta che il valore effettivo di qualsiasi proprietà di dipendenza in questo DependencyObject oggetto è stato aggiornato. La proprietà di dipendenza specifica modificata viene segnalata nei dati dell'evento.

(Ereditato da DependencyObject)
ReadLocalValue(DependencyProperty)

Restituisce il valore locale di una proprietà di dipendenza, se esistente.

(Ereditato da DependencyObject)
SetCurrentValue(DependencyProperty, Object)

Imposta il valore di una proprietà di dipendenza senza modificarne l'origine del valore.

(Ereditato da DependencyObject)
SetValue(DependencyProperty, Object)

Imposta il valore locale di una proprietà di dipendenza, specificato dall'identificatore della proprietà di dipendenza.

(Ereditato da DependencyObject)
SetValue(DependencyPropertyKey, Object)

Imposta il valore locale di una proprietà di dipendenza di sola lettura, specificato dall'identificatore DependencyPropertyKey della proprietà di dipendenza.

(Ereditato da DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Restituisce un valore che indica se i processi di serializzazione devono serializzare il valore per la proprietà di dipendenza specificata.

(Ereditato da DependencyObject)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
VerifyAccess()

Impone che il thread chiamante abbia accesso a questo DispatcherObjectoggetto .

(Ereditato da DispatcherObject)

Implementazioni dell'interfaccia esplicita

Nome Descrizione
IAddChild.AddChild(Object)

Aggiunge un oggetto figlio.

IAddChild.AddText(String)

Aggiunge il contenuto di testo di un nodo all'oggetto .

Si applica a

Vedi anche