Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Classe DataTrigger

 

Data di pubblicazione: ottobre 2016

Rappresenta un trigger che applica i valori delle proprietà o esegue azioni quando i dati associati soddisfano una condizione specificata.

Spazio dei nomi:   System.Windows
Assembly:  PresentationFramework (in PresentationFramework.dll)


[ContentPropertyAttribute("Setters")]
[XamlSetMarkupExtensionAttribute("ReceiveMarkupExtension")]
public class DataTrigger : TriggerBase, IAddChild

NomeDescrizione
System_CAPS_pubmethodDataTrigger()

Inizializza una nuova istanza della classe DataTrigger.

NomeDescrizione
System_CAPS_pubpropertyBinding

Ottiene o imposta l'associazione che genera il valore della proprietà dell'oggetto dati.

System_CAPS_pubpropertyDependencyObjectType

Ottiene il DependencyObjectType che esegue il wrapping di CLR tipo di questa istanza. (Ereditato da DependencyObject.)

System_CAPS_pubpropertyDispatcher

Ottiene il Dispatcher questo DispatcherObject è associato.(Ereditato da DispatcherObject.)

System_CAPS_pubpropertyEnterActions

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

System_CAPS_pubpropertyExitActions

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

System_CAPS_pubpropertyIsSealed

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

System_CAPS_pubpropertySetters

Ottiene una raccolta di Setter oggetti che descrivono i valori delle proprietà da applicare quando l'elemento dati soddisfa la condizione specificata.

System_CAPS_pubpropertyValue

Ottiene o imposta il valore da confrontare con il valore della proprietà dell'oggetto dati.

NomeDescrizione
System_CAPS_pubmethodCheckAccess()

Determina se il thread chiamante ha accesso a questo DispatcherObject.(Ereditato da DispatcherObject.)

System_CAPS_pubmethodClearValue(DependencyProperty)

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

System_CAPS_pubmethodClearValue(DependencyPropertyKey)

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

System_CAPS_pubmethodCoerceValue(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.)

System_CAPS_pubmethodEquals(Object)

Determina se l'oggetto DependencyObject è equivalente all'oggetto corrente DependencyObject.(Ereditato da DependencyObject.)

System_CAPS_protmethodFinalize()

Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulizia prima che l'oggetto stesso venga reclamato dalla procedura di Garbage Collection. (Ereditato da Object.)

System_CAPS_pubmethodGetHashCode()

Ottiene un codice hash per l'oggetto DependencyObject.(Ereditato da DependencyObject.)

System_CAPS_pubmethodGetLocalValueEnumerator()

Crea un enumeratore specializzato per determinare quali proprietà di dipendenza presentano valori impostati localmente su questo DependencyObject.(Ereditato da DependencyObject.)

System_CAPS_pubmethodGetType()

Ottiene l'oggetto Type dell'istanza corrente.(Ereditato da Object.)

System_CAPS_pubmethodGetValue(DependencyProperty)

Restituisce il valore effettivo corrente di una proprietà di dipendenza in questa istanza di DependencyObject.(Ereditato da DependencyObject.)

System_CAPS_pubmethodInvalidateProperty(DependencyProperty)

Rivaluta il valore effettivo della proprietà di dipendenza specificata(Ereditato da DependencyObject.)

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.(Ereditato da Object.)

System_CAPS_protmethodOnPropertyChanged(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.)

System_CAPS_pubmethodReadLocalValue(DependencyProperty)

Restituisce il valore locale di una proprietà di dipendenza, se presente.(Ereditato da DependencyObject.)

System_CAPS_pubmethodSystem_CAPS_staticReceiveMarkupExtension(Object, XamlSetMarkupExtensionEventArgs)

Gestisce i casi in cui un'estensione di markup fornisce un valore per una proprietà di un DataTrigger oggetto.

System_CAPS_pubmethodSetCurrentValue(DependencyProperty, Object)

Imposta il valore di una proprietà di dipendenza senza modificare l'origine del valore.(Ereditato da DependencyObject.)

System_CAPS_pubmethodSetValue(DependencyProperty, Object)

Imposta il valore locale di una proprietà di dipendenza, specificato dal relativo identificatore della proprietà di dipendenza.(Ereditato da DependencyObject.)

System_CAPS_pubmethodSetValue(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.)

System_CAPS_protmethodShouldSerializeProperty(DependencyProperty)

Restituisce un valore che indica se i processi di serializzazione devono serializzare il valore della proprietà di dipendenza specificata.(Ereditato da DependencyObject.)

System_CAPS_pubmethodToString()

Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object.)

System_CAPS_pubmethodVerifyAccess()

Impone che il thread chiamante ha accesso a DispatcherObject.(Ereditato da DispatcherObject.)

NomeDescrizione
System_CAPS_pubinterfaceSystem_CAPS_privmethodIAddChild.AddChild(Object)

Questa API supporta l'infrastruttura prodotto e non può essere usata direttamente dal codice. Aggiunge un oggetto figlio.

System_CAPS_pubinterfaceSystem_CAPS_privmethodIAddChild.AddText(String)

Questa API supporta l'infrastruttura prodotto e non può essere usata direttamente dal codice. Aggiunge il contenuto di testo di un nodo all'oggetto.

Style, ControlTemplate, e DataTemplate hanno un insieme di trigger. Oggetto DataTrigger consente di impostare i valori delle proprietà quando il valore della proprietà dell'oggetto dati corrisponde a un oggetto specificato Value. Ad esempio, se si sta visualizzando un elenco di Employee oggetti, è il colore di primo piano può essere diverso in base a ciascuno Employee's partecipazione corrente. (Ad esempio, Employees che sono attualmente in vacanza sono visualizzati con un primo piano viola.) In alcuni scenari potrebbe essere più appropriato per creare un convertitore o utilizzare un DataTemplateSelector. Per ulteriori informazioni, vedere il Cenni preliminari sui modelli di dati.

Si noti che è necessario specificare sia il Binding e Value proprietà su un DataTrigger per il trigger di dati significativi. Se una o entrambe le proprietà non sono specificate, viene generata un'eccezione.

Il Setters proprietà di un DataTrigger oggetto può contenere solo Setter oggetti. Aggiunta di un Setter figlio per un DataTrigger oggetto aggiunge in modo implicito per il SetterBaseCollection per il DataTrigger oggetto. EventSetter gli oggetti non sono supportati. solo Style.Setters supporta EventSetter oggetti.

Nell'esempio seguente, il ItemsSource del ListBox è associato a posizioni, un ObservableCollection<T> di sul posto oggetti. Sul posto oggetti dispongono di proprietà nome e stato.

Ogni ListBoxItem di ListBox Visualizza un sul posto oggetto. Il Style nell'esempio viene applicato a ogni ListBoxItem.

Il DataTrigger specificato in modo che se il stato di sul posto elemento dati è "WA", il primo piano del corrispondente ListBoxItem è impostato su rosso.

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

Nell'esempio seguente viene illustrato come utilizzare un DataTrigger, BeginStoryboard azione e un Storyboard per animare una proprietà quando i dati associati soddisfano una condizione specificata. Nell'esempio vengono visualizzate informazioni relative all'inventario in un ListBox controllo. Viene utilizzato un DataTrigger per animare il Opacity di ogni ListBoxItem contenente un libro di esaurimento delle scorte.

<Page 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="DataTriggerStoryboardExample">

  <Page.Resources>
    <XmlDataProvider x:Key="InventoryData" XPath="Inventory/Books">
      <x:XData>
        <Inventory xmlns="">
          <Books>
            <Book ISBN="0-7356-0562-9" Stock="in" Number="9">
              <Title>XML in Action</Title>
              <Summary>XML Web Technology</Summary>
            </Book>
            <Book ISBN="0-7356-1370-2" Stock="in" Number="8">
              <Title>Programming Microsoft Windows With C#</Title>
              <Summary>C# Programming using the .NET Framework</Summary>
            </Book>
            <Book ISBN="0-7356-1288-9" Stock="out" Number="7">
              <Title>Inside C#</Title>
              <Summary>C# Language Programming</Summary>
            </Book>
            <Book ISBN="0-7356-1377-X" Stock="in" Number="5">
              <Title>Introducing Microsoft .NET</Title>
              <Summary>Overview of .NET Technology</Summary>
            </Book>
            <Book ISBN="0-7356-1448-2" Stock="out" Number="4">
              <Title>Microsoft C# Language Specifications</Title>
              <Summary>The C# language definition</Summary>
            </Book>
          </Books>
          <CDs>
            <CD Stock="in" Number="3">
              <Title>Classical Collection</Title>
              <Summary>Classical Music</Summary>
            </CD>
            <CD Stock="out" Number="9">
              <Title>Jazz Collection</Title>
              <Summary>Jazz Music</Summary>
            </CD>
          </CDs>
        </Inventory>
      </x:XData>
    </XmlDataProvider>

    <Style x:Key="AnimatedListBoxItemStyle" TargetType="{x:Type ListBoxItem}">

      <Setter Property="Margin" Value="0,2,0,2" />
      <Setter Property="Padding" Value="0,2,0,2" />

      <Style.Triggers>
        <DataTrigger 
         Binding="{Binding XPath=@Stock}" 
         Value="out">
          <DataTrigger.EnterActions>
            <BeginStoryboard>
              <Storyboard>
                <DoubleAnimation
                 Storyboard.TargetProperty="Opacity"
                 From="0.25" To="0.5" Duration="0:0:1" 
                 RepeatBehavior="Forever"
                 AutoReverse="True"/>
              </Storyboard>
            </BeginStoryboard>
          </DataTrigger.EnterActions>
          <DataTrigger.ExitActions>
            <BeginStoryboard> 
              <Storyboard FillBehavior="Stop">
                <DoubleAnimation
                  Storyboard.TargetProperty="Opacity"
                  To="1" Duration="0:0:1" />
              </Storyboard>
            </BeginStoryboard>  
          </DataTrigger.ExitActions>

        </DataTrigger>
      </Style.Triggers>
    </Style>
  </Page.Resources>

  <StackPanel>
    <ListBox HorizontalAlignment="Center"
      ItemContainerStyle="{StaticResource AnimatedListBoxItemStyle}"
      Padding="2">
      <ListBox.ItemsSource>
        <Binding Source="{StaticResource InventoryData}"
                 XPath="*"/>
      </ListBox.ItemsSource>

      <ListBox.ItemTemplate>
        <DataTemplate>
          <TextBlock FontSize="12" Margin="0,0,10,0">
            <TextBlock.Text>
              <Binding XPath="Title"/>
            </TextBlock.Text>
          </TextBlock>
        </DataTemplate>
      </ListBox.ItemTemplate>
    </ListBox>
  </StackPanel>
</Page>

.NET Framework
Disponibile da 3.0

I membri statici pubblici ( Condiviso in Visual Basic) di questo tipo è thread safe. Non tutti i membri di istanza sono garantiti come thread safe.

Torna all'inizio
Mostra: