Use DataTrigger and MultiDataTrigger.
<Window Background="Cornsilk"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:c="clr-namespace:WpfApplication1"
x:Class="WpfApplication1.Window1"
Title="DataTrigger Sample" Width = "320" Height = "300">
<Window.Resources>
<c:Employees x:Key="EmployeesData"/>
<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:Employee}">
<Canvas Width="160" Height="20">
<TextBlock Text="{Binding Path=Name}"/>
<TextBlock 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 EmployeesData}}"/>
</StackPanel>
</Window>
//File:Window.xaml.cs
using System;
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Data;
using System.Collections.ObjectModel;
namespace WpfApplication1
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
}
public class Employee
{
private string _name;
private string _state;
public string Name
{
get { return _name; }
set { _name = value; }
}
public string State
{
get { return _state; }
set { _state = value; }
}
public Employee(string name, string state)
{
this._name = name;
this._state = state;
}
}
public class Employees : ObservableCollection<Employee>
{
public Employees()
{
Add(new Employee("A", "WA"));
Add(new Employee("B", "OR"));
Add(new Employee("C", "WA"));
Add(new Employee("D", "CA"));
}
}
}
Related examples in the same category