Compartilhar via


MultiDataTrigger Classe

Definição

Representa um gatilho que aplica valores de propriedade ou executa ações quando os dados associados atendem a 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 a seguir, a ItemsSource propriedade do ListBox é associada a Places, um ObservableCollection<T> dos Place objetos. Place os objetos têm propriedades Name e State. A definição de Place e Places não são mostradas.

Cada ListBoxItem um deles ListBox exibe um Place objeto. O Style exemplo é aplicado a cada ListBoxItem. Os Condition elementos da MultiDataTrigger especificação especificam que, se o item de dados e State o Name Place item de dados forem Portland eOR, respectivamente, o plano de fundo da correspondente ListBoxItem será 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>

Comentários

Um MultiDataTrigger objeto é semelhante a um MultiTrigger, exceto que as condições de um MultiDataTrigger são baseadas em valores de propriedade de dados associados em vez daqueles de um UIElement. Em uma MultiDataTriggercondição, uma condição é atendida quando o valor da propriedade do item de dados corresponde ao especificado Value. Em seguida, você pode usar setters ou propriedades EnterActions e ExitActions para aplicar alterações ou iniciar ações quando todas as condições forem atendidas.

A Setters propriedade de um MultiDataTrigger objeto só pode consistir em Setter objetos. Adicionar um Setter filho a um MultiDataTrigger objeto o adiciona implicitamente ao SetterBaseCollection MultiDataTrigger objeto. EventSetter não há suporte para objetos; só Style.SettersEventSetter suporte a objetos.

Para obter informações sobre quando usar gatilhos e quando usar outras técnicas, consulte a Visão geral da Modelagem de Dados.

Construtores

MultiDataTrigger()

Inicializa uma nova instância da classe MultiDataTrigger.

Propriedades

Conditions

Obtém uma coleção de objetos Condition . As alterações de valores de propriedade são aplicadas quando todas as condições na coleção são atendidas.

DependencyObjectType

Obtém o DependencyObjectType que encapsula o tipo CLR dessa instância.

(Herdado de DependencyObject)
Dispatcher

Obtém o Dispatcher ao qual este DispatcherObject está associado.

(Herdado de DispatcherObject)
EnterActions

Obtém uma coleção de objetos TriggerAction a ser aplicada quando o objeto gatilho se tornar ativo. Essa propriedade não se aplica à classe EventTrigger.

(Herdado de TriggerBase)
ExitActions

Obtém uma coleção de objetos TriggerAction a ser aplicada quando o objeto de gatilho se tornar inativo. Essa propriedade não se aplica à classe EventTrigger.

(Herdado de TriggerBase)
IsSealed

Obtém um valor que indica se essa instância está validada no momento (somente leitura).

(Herdado de DependencyObject)
Setters

Obtém uma coleção de objetos Setter que descrevem os valores de propriedade que serão aplicados quando todas as condições de MultiDataTrigger forem atendidas.

Métodos

CheckAccess()

Determina se o thread de chamada 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 identificador DependencyProperty.

(Herdado de DependencyObject)
ClearValue(DependencyPropertyKey)

Limpa o valor local de uma propriedade somente leitura. A propriedade a ser limpa é especificada por um DependencyPropertyKey.

(Herdado de DependencyObject)
CoerceValue(DependencyProperty)

Converte o valor da propriedade de dependência especificada. Isso é feito invocando qualquer função CoerceValueCallback especificada nos metadados de propriedade para a propriedade de dependência, visto que ela existe na chamada a DependencyObject.

(Herdado de DependencyObject)
Equals(Object)

Determina se um DependencyObject fornecido é equivalente ao DependencyObject atual.

(Herdado de DependencyObject)
GetHashCode()

Obtém o código hash para esse DependencyObject.

(Herdado de DependencyObject)
GetLocalValueEnumerator()

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

(Herdado de DependencyObject)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
GetValue(DependencyProperty)

Retorna o valor efetivo atual de uma propriedade de dependência nessa instância de um DependencyObject.

(Herdado de DependencyObject)
InvalidateProperty(DependencyProperty)

Reavalia o valor efetivo para a propriedade de dependência especificada.

(Herdado de DependencyObject)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Invocado sempre que o valor efetivo de qualquer propriedade de dependência nesse DependencyObject for atualizado. A propriedade de dependência específica que mudou é relatada os dados do evento.

(Herdado de DependencyObject)
ReadLocalValue(DependencyProperty)

Retorna o valor local de uma propriedade de dependência, local, se houver.

(Herdado de DependencyObject)
SetCurrentValue(DependencyProperty, Object)

Define o valor da propriedade de dependência sem alterar a origem do valor.

(Herdado de DependencyObject)
SetValue(DependencyProperty, Object)

Define o valor local de uma propriedade de dependência, especificada pelo identificador da propriedade de dependência.

(Herdado de DependencyObject)
SetValue(DependencyPropertyKey, Object)

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

(Herdado de DependencyObject)
ShouldSerializeProperty(DependencyProperty)

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

(Herdado de DependencyObject)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
VerifyAccess()

Impõe que o thread de chamada tenha acesso a este DispatcherObject.

(Herdado de DispatcherObject)

Implantações explícitas de interface

IAddChild.AddChild(Object)

Adiciona um objeto filho.

IAddChild.AddText(String)

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

Aplica-se a

Confira também