DataTrigger クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
バインドされたデータが指定した条件を満たしたときに、プロパティ値を適用するかアクションを実行するトリガーを表します。
public ref class DataTrigger : System::Windows::TriggerBase, System::Windows::Markup::IAddChild
[System.Windows.Markup.ContentProperty("Setters")]
public class DataTrigger : System.Windows.TriggerBase, System.Windows.Markup.IAddChild
[System.Windows.Markup.ContentProperty("Setters")]
[System.Windows.Markup.XamlSetMarkupExtension("ReceiveMarkupExtension")]
public class DataTrigger : System.Windows.TriggerBase, System.Windows.Markup.IAddChild
[<System.Windows.Markup.ContentProperty("Setters")>]
type DataTrigger = class
inherit TriggerBase
interface IAddChild
[<System.Windows.Markup.ContentProperty("Setters")>]
[<System.Windows.Markup.XamlSetMarkupExtension("ReceiveMarkupExtension")>]
type DataTrigger = class
inherit TriggerBase
interface IAddChild
Public Class DataTrigger
Inherits TriggerBase
Implements IAddChild
- 継承
- 属性
- 実装
例
次の例では、ItemsSourceこれらのListBoxオブジェクトは Place オブジェクトの PlacesObservableCollection<T> にバインドされています。 Place オブジェクトにはプロパティ Name と State があります。
各 ListBoxItem オブジェクトに ListBox Place オブジェクトが表示されます。 この Style 例では、各 ListBoxItem.
Place DataTrigger データ項目 の 状態 が "WA" の場合、対応するListBoxItem前景が赤に設定されるように指定されます。
<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>
次の例は、バインドされたデータが指定された条件をDataTriggerBeginStoryboard満たす場合に、プロパティをアニメーション化する、アクション、および a Storyboard を使用する方法を示しています。 この例では、在庫情報をコントロールに ListBox 表示します。 a を使用 DataTrigger して、 Opacity 在庫切れの書籍を含むすべての ListBoxItem 書籍をアニメーション化します。
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="DataTriggerStoryboardExample">
<Page.Resources>
<XmlDataProvider x:Key="InventoryData" XPath="Inventory/Books">
<x:XData>
<Inventory xmlns="">
<Books>
<Book ISBN="0-7356-0562-9" Stock="in" Number="9">
<Title>XML in Action</Title>
<Summary>XML Web Technology</Summary>
</Book>
<Book ISBN="0-7356-1370-2" Stock="in" Number="8">
<Title>Programming Microsoft Windows With C#</Title>
<Summary>C# Programming using the .NET Framework</Summary>
</Book>
<Book ISBN="0-7356-1288-9" Stock="out" Number="7">
<Title>Inside C#</Title>
<Summary>C# Language Programming</Summary>
</Book>
<Book ISBN="0-7356-1377-X" Stock="in" Number="5">
<Title>Introducing Microsoft .NET</Title>
<Summary>Overview of .NET Technology</Summary>
</Book>
<Book ISBN="0-7356-1448-2" Stock="out" Number="4">
<Title>Microsoft C# Language Specifications</Title>
<Summary>The C# language definition</Summary>
</Book>
</Books>
<CDs>
<CD Stock="in" Number="3">
<Title>Classical Collection</Title>
<Summary>Classical Music</Summary>
</CD>
<CD Stock="out" Number="9">
<Title>Jazz Collection</Title>
<Summary>Jazz Music</Summary>
</CD>
</CDs>
</Inventory>
</x:XData>
</XmlDataProvider>
<Style x:Key="AnimatedListBoxItemStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="Margin" Value="0,2,0,2" />
<Setter Property="Padding" Value="0,2,0,2" />
<Style.Triggers>
<DataTrigger
Binding="{Binding XPath=@Stock}"
Value="out">
<DataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetProperty="Opacity"
From="0.25" To="0.5" Duration="0:0:1"
RepeatBehavior="Forever"
AutoReverse="True"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard>
<Storyboard FillBehavior="Stop">
<DoubleAnimation
Storyboard.TargetProperty="Opacity"
To="1" Duration="0:0:1" />
</Storyboard>
</BeginStoryboard>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</Page.Resources>
<StackPanel>
<ListBox HorizontalAlignment="Center"
ItemContainerStyle="{StaticResource AnimatedListBoxItemStyle}"
Padding="2">
<ListBox.ItemsSource>
<Binding Source="{StaticResource InventoryData}"
XPath="*"/>
</ListBox.ItemsSource>
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock FontSize="12" Margin="0,0,10,0">
<TextBlock.Text>
<Binding XPath="Title"/>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
</Page>
注釈
Style、 ControlTemplateおよび DataTemplate すべてがトリガー コレクションを持っています。 A DataTrigger を使用すると、データ オブジェクトのプロパティ値が指定した値と一致する場合に、プロパティ値を設定できます Value。 たとえば、オブジェクトの一覧を表示する場合は、現在の Employee
出欠ごとに Employee's
前景色を異なることがあります。 (たとえば、 Employees
現在休暇中のユーザーは、紫色の前景で表示されます)。一部のシナリオでは、コンバーターを作成したり DataTemplateSelector、. 詳細については、「 データテンプレートの概要」を参照してください。
データ トリガーが意味を持つには、a DataTrigger のBindingプロパティとValueプロパティの両方を指定する必要があることに注意してください。 プロパティの一方または両方が指定されていない場合は、例外がスローされます。
オブジェクトのプロパティは Setters 、 DataTrigger オブジェクトのみで構成 Setter できます。 オブジェクトに子を Setter 追加すると、 DataTrigger その子がオブジェクトの for に SetterBaseCollection 暗黙的に DataTrigger 追加されます。 EventSetter オブジェクトはサポートされていません。はオブジェクトのみを Style.Setters サポートします EventSetter 。
コンストラクター
DataTrigger() |
DataTrigger クラスの新しいインスタンスを初期化します。 |
プロパティ
Binding |
データ オブジェクトのプロパティ値を作成するバインドを取得または設定します。 |
DependencyObjectType |
このインスタンスの DependencyObjectType CLR 型をラップする値を取得します。 (継承元 DependencyObject) |
Dispatcher |
この Dispatcher が関連付けられている DispatcherObject を取得します。 (継承元 DispatcherObject) |
EnterActions |
トリガー オブジェクトがアクティブになったときに適用する TriggerAction オブジェクトのコレクションを取得します。 このプロパティは EventTrigger クラスには適用されません。 (継承元 TriggerBase) |
ExitActions |
トリガー オブジェクトが非アクティブになったときに適用する TriggerAction オブジェクトのコレクションを取得します。 このプロパティは EventTrigger クラスには適用されません。 (継承元 TriggerBase) |
IsSealed |
このインスタンスが現在シールされている (読み取り専用である) かどうかを示す値を取得します。 (継承元 DependencyObject) |
Setters |
データ項目が指定した条件を満たしたときに適用するプロパティ値を表す Setter オブジェクトのコレクションを取得します。 |
Value |
データ オブジェクトのプロパティ値と比較する値を取得または設定します。 |
メソッド
明示的なインターフェイスの実装
IAddChild.AddChild(Object) |
子オブジェクトを追加します。 |
IAddChild.AddText(String) |
オブジェクトにノードのテキスト コンテンツを追加します。 |