DataTrigger.Value Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает или задает значение для сравнения со значением свойства объекта данных.
public:
property System::Object ^ Value { System::Object ^ get(); void set(System::Object ^ value); };
[System.Windows.Localizability(System.Windows.LocalizationCategory.None, Readability=System.Windows.Readability.Unreadable)]
[System.Windows.Markup.DependsOn("Binding")]
public object Value { get; set; }
[<System.Windows.Localizability(System.Windows.LocalizationCategory.None, Readability=System.Windows.Readability.Unreadable)>]
[<System.Windows.Markup.DependsOn("Binding")>]
member this.Value : obj with get, set
Public Property Value As Object
Значение свойства
Значение по умолчанию — null
. Также см. раздел "Исключения".
- Атрибуты
Исключения
Выражения не поддерживаются. Привязки не поддерживаются.
Примеры
В следующем примере ItemsSource свойство объекта ListBox привязано к объектам Place, а ObservableCollection<T> — к объектам Place . Объекты Place имеют свойства Name и State.
Каждый ListBoxItem из ListBox отображает объект Place . в Style примере применяется к каждому ListBoxItemобъекту .
Задается DataTrigger таким образом, что если для элемента данных Place задано значение "WA", то для переднего плана соответствующего ListBoxItem объекта задано значение Red.
<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>
В следующем примере показаны два DataTriggerэлемента , которые определены в DataTemplate. Объект DataTemplate применяется к объектам данных AuctionItem (не показан в этом примере), которые имеют свойство SpecialFeatures. Полный пример см. в разделе Демонстрация привязки данных .
Первый DataTrigger задается таким образом, что если объект данных имеет значение SpecialFeaturesColor, элемент отображается с фоном DodgerBlue с названиями военно-морского флота. Если объект данных имеет значение SpecialFeatures , равное Highlight, то вторая DataTrigger будет активной, в результате чего элемент будет отображаться с оранжевой границей со звездочкой.
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=SpecialFeatures}">
<DataTrigger.Value>
<src:SpecialFeatures>Color</src:SpecialFeatures>
</DataTrigger.Value>
<DataTrigger.Setters>
<Setter Property="BorderBrush" Value="DodgerBlue" TargetName="border" />
<Setter Property="Foreground" Value="Navy" TargetName="descriptionTitle" />
<Setter Property="Foreground" Value="Navy" TargetName="currentPriceTitle" />
<Setter Property="BorderThickness" Value="3" TargetName="border" />
<Setter Property="Padding" Value="5" TargetName="border" />
</DataTrigger.Setters>
</DataTrigger>
<DataTrigger Binding="{Binding Path=SpecialFeatures}">
<DataTrigger.Value>
<src:SpecialFeatures>Highlight</src:SpecialFeatures>
</DataTrigger.Value>
<Setter Property="BorderBrush" Value="Orange" TargetName="border" />
<Setter Property="Foreground" Value="Navy" TargetName="descriptionTitle" />
<Setter Property="Foreground" Value="Navy" TargetName="currentPriceTitle" />
<Setter Property="Visibility" Value="Visible" TargetName="star" />
<Setter Property="BorderThickness" Value="3" TargetName="border" />
<Setter Property="Padding" Value="5" TargetName="border" />
</DataTrigger>
</DataTemplate.Triggers>
Комментарии
Использование элемента свойства XAML
<object>
<object.Value>
Value
</object.Value>
</object>
Это значение сравнивается со значением свойства , созданным Binding свойством DataTriggerобъекта . Данное сравнение является проверкой равенства ссылок. Если эти два значения равны, применяются связанные действия или методы задания.
Обратите внимание, что необходимо указать свойства Binding и Value в объекте , DataTrigger чтобы триггер данных был осмысленным. Если одно или оба свойства не заданы, будет выдано исключение.