Mega Code Archive

 
Categories / C# / WPF
 

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"));     }   } }