MultiDataTrigger Classe

Definição

Representa um gatilho que aplica valores de propriedade ou executa ações quando os dados ligados cumprem um conjunto de condições.

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
Herança
Atributos
Implementações

Exemplos

No exemplo seguinte, a ItemsSource propriedade do ListBox está ligada a Places, um ObservableCollection<T> de Place objetos. Place os objetos têm propriedades Name e State. A definição de Place e Places não é mostrada.

Cada ListBoxItemListBox um exibe um Place objeto. O Style no exemplo é aplicado a cada ListBoxItem. Os Condition elementos de especificam MultiDataTrigger que se os Name e State do Place elemento de dados forem Portland e OR respetivamente, então o fundo de correspondente ListBoxItem é definido como 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>

Observações

Um MultiDataTrigger objeto é semelhante a um MultiTrigger, exceto que as condições de um MultiDataTrigger baseiam-se em valores de propriedades de dados ligados em vez dos valores de um UIElement. Num MultiDataTrigger, uma condição é satisfeita quando o valor da propriedade do elemento de dados corresponde ao especificado Value. Pode então usar setters ou as EnterActions propriedades e ExitActions para aplicar alterações ou iniciar ações quando todas as condições estiverem cumpridas.

A Setters propriedade de um MultiDataTrigger objeto só pode consistir em Setter objetos. Adicionar um Setter filho a um MultiDataTrigger objeto implícitamente adiciona-o ao SetterBaseCollection para o MultiDataTrigger objeto. EventSetter os objetos não são suportados; Só Style.Setters suporta EventSetter objetos.

Para informações sobre quando usar gatilhos e quando usar outras técnicas, consulte Visão Geral dos Templantes de Dados.

Construtores

Name Description
MultiDataTrigger()

Inicializa uma nova instância da MultiDataTrigger classe.

Propriedades

Name Description
Conditions

Recebe uma coleção de Condition objetos. Alterações aos valores das propriedades são aplicadas quando todas as condições da coleção são cumpridas.

DependencyObjectType

Obtém o DependencyObjectType que envolve o tipo CLR desta instância.

(Herdado de DependencyObject)
Dispatcher

Percebe o Dispatcher que isto DispatcherObject está associado.

(Herdado de DispatcherObject)
EnterActions

Obtém uma coleção de TriggerAction objetos para aplicar quando o objeto de disparo se torna ativo. Esta característica não se aplica à EventTrigger classe.

(Herdado de TriggerBase)
ExitActions

Obtém uma coleção de TriggerAction objetos para aplicar quando o objeto gatilho se torna inativo. Esta característica não se aplica à EventTrigger classe.

(Herdado de TriggerBase)
IsSealed

Recebe um valor que indica se esta instância está atualmente selada (apenas leitura).

(Herdado de DependencyObject)
Setters

Obtém uma coleção de Setter objetos que descrevem os valores das propriedades a aplicar quando todas as condições de são MultiDataTrigger cumpridas.

Métodos

Name Description
CheckAccess()

Determina se o thread que chama tem acesso a este DispatcherObject.

(Herdado de DispatcherObject)
ClearValue(DependencyProperty)

Limpa o valor local de uma propriedade. A propriedade a ser limpa é especificada por um DependencyProperty identificador.

(Herdado de DependencyObject)
ClearValue(DependencyPropertyKey)

Limpa o valor local de uma propriedade de apenas leitura. O imóvel a ser limpo é especificado por um DependencyPropertyKey.

(Herdado de DependencyObject)
CoerceValue(DependencyProperty)

Coage o valor da propriedade de dependência especificada. Isto é conseguido invocando qualquer CoerceValueCallback função especificada nos metadados da propriedade para a propriedade de dependência tal como existe na chamada DependencyObject.

(Herdado de DependencyObject)
Equals(Object)

Determina se um fornecido DependencyObject é equivalente à corrente DependencyObject.

(Herdado de DependencyObject)
GetHashCode()

Obtém um código de hash para isto DependencyObject.

(Herdado de DependencyObject)
GetLocalValueEnumerator()

Cria um enumerador especializado para determinar quais as propriedades de dependência que têm valores localmente definidos neste DependencyObject.

(Herdado de DependencyObject)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetValue(DependencyProperty)

Devolve o valor efetivo atual de uma propriedade de dependência nesta instância de um DependencyObject.

(Herdado de DependencyObject)
InvalidateProperty(DependencyProperty)

Reavalia o valor efetivo da propriedade de dependência especificada.

(Herdado de DependencyObject)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Invocado sempre que o valor efetivo de qualquer propriedade de dependência disto DependencyObject for atualizado. A propriedade específica da dependência que mudou é reportada nos dados do evento.

(Herdado de DependencyObject)
ReadLocalValue(DependencyProperty)

Devolve o valor local de uma propriedade de dependência, se esta existir.

(Herdado de DependencyObject)
SetCurrentValue(DependencyProperty, Object)

Define o valor de uma propriedade de dependência sem alterar a sua fonte de valor.

(Herdado de DependencyObject)
SetValue(DependencyProperty, Object)

Define o valor local de uma propriedade de dependência, especificado pelo seu identificador de propriedade de dependência.

(Herdado de DependencyObject)
SetValue(DependencyPropertyKey, Object)

Define o valor local de uma propriedade de dependência somente de leitura, especificado pelo DependencyPropertyKey identificador da propriedade de dependência.

(Herdado de DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Devolve um valor que indica se os processos de serialização devem serializar o valor da propriedade de dependência fornecida.

(Herdado de DependencyObject)
ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)
VerifyAccess()

Faz cumprir que o thread que chama tem acesso a este DispatcherObject.

(Herdado de DispatcherObject)

Implementações de Interface Explícita

Name Description
IAddChild.AddChild(Object)

Adiciona um objeto filho.

IAddChild.AddText(String)

Adiciona o conteúdo textual de um nó ao objeto.

Aplica-se a

Ver também