Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale
Questo argomento non è stato ancora valutato - Valuta questo argomento

Classe DataTrigger

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)
XMLNS per XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation
[ContentPropertyAttribute("Setters")]
[XamlSetMarkupExtensionAttribute("ReceiveMarkupExtension")]
public class DataTrigger : TriggerBase, 
	IAddChild
<DataTrigger>
  Setters
</DataTrigger>

Il tipo DataTrigger espone i seguenti membri.

  NomeDescrizione
Metodo pubblicoDataTriggerInizializza una nuova istanza di DataTrigger classe.
In alto
  NomeDescrizione
Proprietà pubblicaBindingOttiene o imposta l'associazione che produce il valore della proprietà dell'oggetto dati.
Proprietà pubblicaDependencyObjectTypeottiene DependencyObjectType tale esegue il wrapping CLR tipo dell'istanza.  (Ereditato da DependencyObject)
Proprietà pubblicaDispatcher ottiene l'oggetto Dispatcher al quale l'oggetto DispatcherObject è associato. (Ereditato da DispatcherObject)
Proprietà pubblicaEnterActionsOttiene una raccolta di TriggerAction oggetti da applicare quando l'oggetto del trigger diventa attivo. Questa proprietà non si applica a EventTrigger classe. (Ereditato da TriggerBase)
Proprietà pubblicaExitActionsOttiene una raccolta di TriggerAction oggetti da applicare quando l'oggetto del trigger diventa inattiva. Questa proprietà non si applica a EventTrigger classe. (Ereditato da TriggerBase)
Proprietà pubblicaIsSealedOttiene un valore che indica se l'istanza attualmente è sealed (sola lettura). (Ereditato da DependencyObject)
Proprietà pubblicaSettersOttiene una raccolta di Setter oggetti, che descrivono i valori della proprietà per applicare quando l'elemento dati soddisfi la condizione specificata.
Proprietà pubblicaValueOttiene o imposta il valore da confrontare con il valore della proprietà dell'oggetto dati.
In alto
  NomeDescrizione
Metodo pubblicoCheckAccessdetermina se il thread chiamante ha accesso a questo DispatcherObject. (Ereditato da DispatcherObject)
Metodo pubblicoClearValue(DependencyProperty)cancella il valore locale di una proprietà. La proprietà da cancellare viene specificata da un oggetto DependencyProperty identificatore. (Ereditato da DependencyObject)
Metodo pubblicoClearValue(DependencyPropertyKey)Cancella il valore locale di una proprietà di sola lettura. La proprietà da cancellare viene specificata da un oggetto DependencyPropertyKey. (Ereditato da DependencyObject)
Metodo pubblicoCoerceValueAssegna il valore del specificato proprietà di dipendenza. Questa operazione viene eseguita utilizzando qualsiasi CoerceValueCallback funzione specificata nei metadati della proprietà per la proprietà di dipendenza come esiste nel chiamare DependencyObject. (Ereditato da DependencyObject)
Metodo pubblicoEqualsdetermina se fornito DependencyObject equivale a corrente DependencyObject. (Ereditato da DependencyObject)
Metodo protettoFinalize 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)
Metodo pubblicoGetHashCodeOttiene un oggetto codice hash per questo DependencyObject. (Ereditato da DependencyObject)
Metodo pubblicoGetLocalValueEnumeratorCrea un enumeratore specializzato per determinare quali proprietà di dipendenza in locale è impostato stima su questa DependencyObject. (Ereditato da DependencyObject)
Metodo pubblicoGetType Ottiene il Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblicoGetValueRestituisce il valore effettivo corrente di un oggetto proprietà di dipendenza in questa istanza di un oggetto DependencyObject. (Ereditato da DependencyObject)
Metodo pubblicoInvalidatePropertyRivaluta il valore effettivo per la proprietà di dipendenza (Ereditato da DependencyObject)
Metodo protettoMemberwiseCloneConsente di creare una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo protettoOnPropertyChangedRichiamato ogni volta che il valore effettivo di qualsiasi proprietà di dipendenza in questo DependencyObject è stato aggiornato. La proprietà di dipendenza specifica che è stata modificata è indicata nei dati di evento. (Ereditato da DependencyObject)
Metodo pubblicoReadLocalValueRestituisce il valore locale di un oggetto proprietà di dipendenza, se esiste. (Ereditato da DependencyObject)
Metodo pubblicoMembro staticoReceiveMarkupExtensionGestisce i casi in cui un'estensione di markup fornisce un valore per una proprietà di un oggetto DataTrigger oggetto.
Metodo pubblicoSetCurrentValueImposta il valore di un oggetto proprietà di dipendenza senza modificarne il codice sorgente di valore. (Ereditato da DependencyObject)
Metodo pubblicoSetValue(DependencyProperty, Object)Imposta il valore locale di un oggetto proprietà di dipendenza, specificato dal relativo identificatore di proprietà di dipendenza. (Ereditato da DependencyObject)
Metodo pubblicoSetValue(DependencyPropertyKey, Object)Imposta il valore locale di un oggetto di sola lettura proprietà di dipendenza, specificato da DependencyPropertyKey identificatore della proprietà di dipendenza. (Ereditato da DependencyObject)
Metodo protettoShouldSerializePropertyRestituisce un valore che indica se i processi di serializzazione deve serializzare il valore fornito per proprietà di dipendenza. (Ereditato da DependencyObject)
Metodo pubblicoToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)
Metodo pubblicoVerifyAccess Impone che il thread chiamante abbia accesso a questo DispatcherObject. (Ereditato da DispatcherObject)
In alto
  NomeDescrizione
Implementazione esplicita dell'interfacciaMetodo privatoIAddChild.AddChildInfrastruttura. aggiunge un oggetto figlio.
Implementazione esplicita dell'interfacciaMetodo privatoIAddChild.AddTextInfrastruttura. Aggiunge il contenuto di testo di un nodo all'oggetto.
In alto

Style , ControlTemplatee DataTemplate esistono trigger di raccolta. In DataTrigger consente di impostare valori di proprietà in quando il valore della proprietà dell'oggetto dati corrisponde specificato Value. Ad esempio, se viene visualizzato un elenco di Employee oggetti, è possibile utilizzare il colore di primo piano sia diverso basato su ciascuno Employee's la partecipazione corrente. Ad esempio, Employees gli utenti che vengono eseguite simultaneamente alla vacanza visualizzato con un primo piano viola.) In alcuni scenari potrebbe essere consigliabile creare un convertitore o utilizzare un oggetto DataTemplateSelector. Per ulteriori informazioni, vedere Cenni preliminari sui modelli di dati.

Si noti che è necessario specificare sia Binding e Value proprietà di DataTrigger affinché il trigger di dati siano significativi. Se una o entrambe le proprietà non è specificata, viene generata un'eccezione.

Setters proprietà di un oggetto DataTrigger l'oggetto può essere costituito da solo Setter oggetti. Aggiunta di un oggetto Setter figlio a un oggetto DataTrigger l'oggetto in modo implicito la aggiunge a SetterBaseCollection per DataTrigger oggetto. EventSetter gli oggetti non sono supportati; solo Style.Setters supporta EventSetter oggetti.

Nell'esempio seguente, ItemsSource il ListBox è associato a Posizioni, ObservableCollection<T> di posto oggetti. posto gli oggetti dispongono di proprietà nome e stato.

ciascuno ListBoxItem il ListBox visualizza un'posto oggetto. Style nell'esempio viene applicato a ogni controllo ListBoxItem.

DataTrigger viene specificato in modo che se stato il posto l'elemento dati è “WA„ quindi il primo piano della corrispondenza 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 oggetto DataTrigger, a BeginStoryboard azione e Storyboard per animarsi una proprietà quando i dati associati soddisfano una condizione specificata. Le informazioni di esempio di inventario delle visualizzazioni in un oggetto ListBox controllare. Utilizza un oggetto DataTrigger per animarsi Opacity l'oggetto di ogni ListBoxItem contenente il libro indisponibile.


<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

Supportato in: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.
Qualsiasi membro pubblico static (Shared in Visual Basic) di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft. Tutti i diritti riservati.