Condividi tramite


MultiDataTrigger Classe

Definizione

Rappresenta un trigger che applica i valori di proprietà o esegue azioni quando i dati del limite soddisfano un insieme 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> oggetto di Place oggetti . Place gli oggetti hanno proprietà Name e State. La definizione di Place e Places non viene visualizzata.

Ogni ListBoxItem oggetto ListBox visualizza un Place oggetto . Nell'esempio Style viene applicato a ogni ListBoxItemoggetto . Gli Condition elementi di MultiDataTrigger specificano che se e NameState dell'elemento Place di dati sono Portland e OR 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 MultiTrigger, ad eccezione del fatto che le condizioni di un MultiDataTrigger oggetto si basano 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 gli oggetti .

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

Costruttori

MultiDataTrigger()

Inizializza una nuova istanza della classe MultiDataTrigger.

Proprietà

Conditions

Ottiene una raccolta di oggetti Condition. Modifiche ai valori della proprietà sono applicate quando tutte le condizioni nell'insieme sono soddisfatte.

DependencyObjectType

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

(Ereditato da DependencyObject)
Dispatcher

Ottiene l'oggetto Dispatcher associato a DispatcherObject.

(Ereditato da DispatcherObject)
EnterActions

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

(Ereditato da TriggerBase)
ExitActions

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

(Ereditato da TriggerBase)
IsSealed

Ottiene un valore che indica se l'istanza è attualmente sealed (di sola lettura).

(Ereditato da DependencyObject)
Setters

Ottiene un insieme di oggetti Setter che descrivono i valori della proprietà da applicare quando tutte le condizioni di MultiDataTrigger sono soddisfatte.

Metodi

CheckAccess()

Determina se il thread chiamante ha accesso a DispatcherObject.

(Ereditato da DispatcherObject)
ClearValue(DependencyProperty)

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

(Ereditato da DependencyObject)
ClearValue(DependencyPropertyKey)

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

(Ereditato da DependencyObject)
CoerceValue(DependencyProperty)

Assegna forzatamente il valore della proprietà di dipendenza specificata. Questa operazione viene eseguita richiamando qualsiasi funzione CoerceValueCallback specificata nei metadati della proprietà di dipendenza esistente nell'oggetto DependencyObject chiamante.

(Ereditato da DependencyObject)
Equals(Object)

Determina se l'oggetto DependencyObject specificato equivale all'oggetto DependencyObject corrente.

(Ereditato da DependencyObject)
GetHashCode()

Ottiene un codice hash per l'oggetto DependencyObject.

(Ereditato da DependencyObject)
GetLocalValueEnumerator()

Crea un enumeratore specializzato per determinare le proprietà di dipendenza che presentano valori impostati localmente nell'oggetto DependencyObject.

(Ereditato da DependencyObject)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
GetValue(DependencyProperty)

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

(Ereditato da DependencyObject)
InvalidateProperty(DependencyProperty)

Valuta di nuovo il valore effettivo della proprietà di dipendenza specificata.

(Ereditato da DependencyObject)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Richiamato ogni volta che viene aggiornato il valore effettivo di qualsiasi proprietà di dipendenza in DependencyObject. La proprietà di dipendenza specifica modificata viene indicata 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 modificare l'origine del valore.

(Ereditato da DependencyObject)
SetValue(DependencyProperty, Object)

Imposta il valore locale di una proprietà di dipendenza, specificato dal relativo 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 della 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 DispatcherObject.

(Ereditato da DispatcherObject)

Implementazioni dell'interfaccia esplicita

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