MultiDataTrigger.Conditions Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Получает коллекцию объектов Condition. Изменения значений свойств применяются, если соблюдаются все условия в коллекции.
public:
property System::Windows::ConditionCollection ^ Conditions { System::Windows::ConditionCollection ^ get(); };
public System.Windows.ConditionCollection Conditions { get; }
member this.Conditions : System.Windows.ConditionCollection
Public ReadOnly Property Conditions As ConditionCollection
Значение свойства
Коллекция объектов Condition. По умолчанию является пустой коллекцией.
Примеры
В следующем примере ItemsSource свойство объекта ListBox привязано к Places
объекту, а также к объекту ObservableCollection<T> Place
. Place
объекты имеют свойства Name
и State
. Определение Place
и Places
не отображается.
Каждый ListBoxItem из ListBox них отображает Place
объект. В Style примере применяется к каждому из них ListBoxItem. Элементы Condition MultiDataTrigger указания, что, если Name
элемент данных и State
Place
элемент данных являются Portland
и OR
соответственно, то для соответствующего 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, условие выполняется. Это значение сначала преобразуется в тип значения привязки, если это возможно, а затем два значения сравниваются с помощью Object.Equals
метода. Применяет MultiTrigger связанные методы задания или действия, если все условия имеют значение true (двоичная AND
операция).
Для параметра , каждое MultiDataTriggerусловие в коллекции должно задавать как свойства, так Binding и Value свойства. Для получения дополнительной информации см. Binding.
Использование элемента свойства XAML
<object>
<object.Conditions>
zeroOrMoreConditions
</object.Conditions>
</object>
Значения XAML
zeroOrMoreConditions
Ноль или больше Condition объектов.