MultiDataTrigger Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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. |