Поделиться через


MultiDataTrigger Класс

Определение

Представляет триггер, который применяет значения свойств или выполняет действия, когда привязанные данные соответствуют набору условий.

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
Наследование
Атрибуты
Реализации

Примеры

В следующем примере ItemsSource свойство объекта привязано к Placesобъекту PlaceObservableCollection<T>.ListBox Place объекты имеют свойства Name и State. Определение Place и Places не отображается.

Каждый из ListBoxItem них ListBox отображает Place объект. В Style примере применяется к каждому ListBoxItem. Элементы Condition указанного MultiDataTrigger параметра указывают, что если NamePlaceState элемент данных и OR элемент данных совпадаютPortland, то для соответствующего ListBoxItem фона задано значение 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>

Комментарии

Объект MultiDataTrigger аналогичен MultiTriggerусловию, за исключением того, что условия объекта MultiDataTrigger основаны на значениях свойств привязанных данных вместо значений UIElement. MultiDataTriggerУсловие выполняется, когда значение свойства элемента данных соответствует указанномуValue. Затем можно использовать методы задания или EnterActionsExitActions свойства для применения изменений или запуска действий при выполнении всех условий.

Setters Свойство MultiDataTrigger объекта может состоять только из Setter объектов. Setter Добавление дочернего MultiDataTrigger объекта в объект неявно добавляет его в SetterBaseCollectionMultiDataTrigger объект. EventSetterобъекты не поддерживаются; поддерживает EventSetter только Style.Setters объекты.

Сведения о том, когда следует использовать триггеры и когда следует использовать другие методы, см. в обзоре шаблонов данных.

Конструкторы

Имя Описание
MultiDataTrigger()

Инициализирует новый экземпляр класса MultiDataTrigger.

Свойства

Имя Описание
Conditions

Возвращает коллекцию Condition объектов. Изменения значений свойств применяются при выполнении всех условий в коллекции.

DependencyObjectType

Возвращает объект DependencyObjectType , который упаковывает тип СРЕДЫ CLR этого экземпляра.

(Унаследовано от DependencyObject)
Dispatcher

Dispatcher Возвращает это DispatcherObject значение, с которым связано.

(Унаследовано от DispatcherObject)
EnterActions

Возвращает коллекцию объектов, применяемых при активации TriggerAction объекта триггера. Это свойство не применяется к классу EventTrigger .

(Унаследовано от TriggerBase)
ExitActions

Возвращает коллекцию объектов, применяемых TriggerAction при неактивном объекте триггера. Это свойство не применяется к классу EventTrigger .

(Унаследовано от TriggerBase)
IsSealed

Возвращает значение, указывающее, запечатан ли этот экземпляр (только для чтения).

(Унаследовано от DependencyObject)
Setters

Возвращает коллекцию Setter объектов, описывающих значения свойств, применяемые при выполнении всех условий.MultiDataTrigger

Методы

Имя Описание
CheckAccess()

Определяет, имеет ли вызывающий поток доступ к этому DispatcherObject.

(Унаследовано от DispatcherObject)
ClearValue(DependencyProperty)

Очищает локальное значение свойства. Свойство для очистки указывается идентификатором DependencyProperty .

(Унаследовано от DependencyObject)
ClearValue(DependencyPropertyKey)

Очищает локальное значение свойства только для чтения. Свойство, которое необходимо очистить, задается параметром DependencyPropertyKey.

(Унаследовано от DependencyObject)
CoerceValue(DependencyProperty)

Принуждает значение указанного свойства зависимостей. Это достигается путем вызова любой CoerceValueCallback функции, указанной в метаданных свойств для свойства зависимостей, так как он существует при вызове DependencyObject.

(Унаследовано от DependencyObject)
Equals(Object)

Определяет, эквивалентен ли предоставленный DependencyObject объект текущему DependencyObject.

(Унаследовано от DependencyObject)
GetHashCode()

Получает хэш-код для этого DependencyObject.

(Унаследовано от DependencyObject)
GetLocalValueEnumerator()

Создает специализированный перечислитель для определения того, какие свойства зависимостей имеют локальные значения для этого DependencyObject.

(Унаследовано от DependencyObject)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
GetValue(DependencyProperty)

Возвращает текущее эффективное значение свойства зависимостей для этого экземпляра DependencyObject.

(Унаследовано от DependencyObject)
InvalidateProperty(DependencyProperty)

Повторно вычисляет эффективное значение для указанного свойства зависимостей.

(Унаследовано от DependencyObject)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
OnPropertyChanged(DependencyPropertyChangedEventArgs)

Вызывается при каждом обновлении эффективного значения любого свойства DependencyObject зависимостей. Определенное свойство зависимостей, которое изменилось, сообщается в данных события.

(Унаследовано от DependencyObject)
ReadLocalValue(DependencyProperty)

Возвращает локальное значение свойства зависимостей, если оно существует.

(Унаследовано от DependencyObject)
SetCurrentValue(DependencyProperty, Object)

Задает значение свойства зависимостей, не изменяя его источник значений.

(Унаследовано от DependencyObject)
SetValue(DependencyProperty, Object)

Задает локальное значение свойства зависимостей, указанное его идентификатором свойства зависимостей.

(Унаследовано от DependencyObject)
SetValue(DependencyPropertyKey, Object)

Задает локальное значение свойства зависимостей только для чтения, указанное DependencyPropertyKey идентификатором свойства зависимости.

(Унаследовано от DependencyObject)
ShouldSerializeProperty(DependencyProperty)

Возвращает значение, указывающее, должны ли процессы сериализации сериализовать значение для указанного свойства зависимостей.

(Унаследовано от DependencyObject)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
VerifyAccess()

Принудительно применяет, что вызывающий поток имеет доступ к этому DispatcherObject.

(Унаследовано от DispatcherObject)

Явные реализации интерфейса

Имя Описание
IAddChild.AddChild(Object)

Добавляет дочерний объект.

IAddChild.AddText(String)

Добавляет текстовое содержимое узла в объект.

Применяется к

См. также раздел