MultiDataTrigger 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示一个触发器,它会在绑定数据满足一组条件时应用属性值或执行操作。
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对象的属性ListBox绑定到Places
ObservableCollection<T>对象Place
。 Place
对象具有属性 Name
和 State
. Place
未显示的定义Places
。
每个ListBoxItemListBox对象都显示一个Place
对象。 本 Style 示例中将应用于每个 ListBoxItem示例。 指定的Condition元素,如果Name
数据项和Place``State
数据项分别是Portland
,OR
则相应的ListBoxItem背景设置为 Cyan
。MultiDataTrigger
<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属性值匹配时,将满足条件。 然后,可以使用 setter 或 EnterActions 属性 ExitActions 在满足所有条件时应用更改或启动操作。
对象的 Setters 属性 MultiDataTrigger 只能包含 Setter 对象。 向 Setter 对象添加子级 MultiDataTrigger 会隐式将其添加到 SetterBaseCollection 该 MultiDataTrigger 对象的子级。 EventSetter 不支持对象;仅 Style.Setters 支持 EventSetter 对象。
有关何时使用触发器以及何时使用其他技术的信息,请参阅 数据模板化概述。
构造函数
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 的所有条件时应用的属性值。 |
方法
显式接口实现
IAddChild.AddChild(Object) |
添加子对象。 |
IAddChild.AddText(String) |
将节点的文本内容添加到对象。 |