How to use Data Trigger in WPF
In this article we will learn how to use singledata and multidata trigger in WPF.
1.Create a project with WPF Application
2.Write code on Window1.Xaml
<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>
<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="">
<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"/>
</StackPanel>
</Window>
3.Now write the code on Window1.xaml.vb
Imports System
Imports System.ComponentModel
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Documents
Imports System.Windows.Navigation
Imports System.Windows.Shapes
Imports System.Windows.Data
Imports System.Collections.ObjectModel
Namespace WpfApplication1
Partial Public Class Window1
Inherits Window
Public Sub New()
InitializeComponent()
End Sub
End Class
Public Class Employee
Private _name As String
Private _state As String
Public Property Name() As String
Get
Return _name
End Get
Set(ByVal value As String)
_name = value
End Set
End Property
Public Property State() As String
Get
Return _state
End Get
Set(ByVal value As String)
_state = value
End Set
End Property
Public Sub New(ByVal name As String, ByVal state As String)
Me._name = name
Me._state = state
End Sub
End Class
Public Class Employees
Inherits ObservableCollection(Of Employee)
Public Sub New()
Add(New Employee("A", "WA"))
Add(New Employee("B", "OR"))
Add(New Employee("C", "WA"))
Add(New Employee("D", "CA"))
End Sub
End Class
End Namespace
4.End of the application.
5.Output Of the Application