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) |
Добавляет текстовое содержимое узла в объект. |