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 dos 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 PlaceName item de dados forem Portland eOR, respectivamente, o plano de fundo 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 um MultiDataTrigger, uma condição é atendida quando o valor da propriedade do item de dados corresponde ao especificado Value. Em seguida, você pode usar setters ou as EnterActions propriedades 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 SetterBaseCollectionMultiDataTrigger 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 Visão geral da Modelagem de Dados.

Construtores

Nome Description
MultiDataTrigger()

Inicializa uma nova instância da classe MultiDataTrigger.

Propriedades

Nome Description
Conditions

Obtém uma coleção de Condition objetos. As alterações nos valores de propriedade são aplicadas quando todas as condições da 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 que DispatcherObject está associado.

(Herdado de DispatcherObject)
EnterActions

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

(Herdado de TriggerBase)
ExitActions

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

(Herdado de TriggerBase)
IsSealed

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

(Herdado de DependencyObject)
Setters

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

Métodos

Nome Description
CheckAccess()

Determina se o thread de chamada tem acesso a isso DispatcherObject.

(Herdado de DispatcherObject)
ClearValue(DependencyProperty)

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

(Herdado de DependencyObject)
ClearValue(DependencyPropertyKey)

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

(Herdado de DependencyObject)
CoerceValue(DependencyProperty)

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

(Herdado de DependencyObject)
Equals(Object)

Determina se um fornecido DependencyObject é equivalente ao atual DependencyObject.

(Herdado de DependencyObject)
GetHashCode()

Obtém um código hash para isso DependencyObject.

(Herdado de DependencyObject)
GetLocalValueEnumerator()

Cria um enumerador especializado para determinar quais propriedades de dependência têm valores definidos localmente.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 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 Objectatual.

(Herdado de Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Invocado sempre que o valor efetivo de qualquer propriedade de dependência tiver DependencyObject sido atualizado. A propriedade de dependência específica que foi alterada é relatada nos dados do evento.

(Herdado de DependencyObject)
ReadLocalValue(DependencyProperty)

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

(Herdado de DependencyObject)
SetCurrentValue(DependencyProperty, Object)

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

(Herdado de DependencyObject)
SetValue(DependencyProperty, Object)

Define o valor local de uma propriedade de dependência, especificada por seu identificador de propriedade de dependência.

(Herdado de DependencyObject)
SetValue(DependencyPropertyKey, Object)

Define o valor local de uma propriedade de dependência somente leitura, especificada pelo DependencyPropertyKey identificador 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 isso DispatcherObject.

(Herdado de DispatcherObject)

Implantações explícitas de interface

Nome Description
IAddChild.AddChild(Object)

Adiciona um objeto filho.

IAddChild.AddText(String)

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

Aplica-se a

Confira também