Bind to ObservableCollection and ItemsSource
<Window x:Class="DataTriggerSample.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:c="clr-namespace:DataTriggerSample"
Title="DataTriggerSample" Height="300" Width="300">
<Window.Resources>
<c:People x:Key="PeopleData"/>
<Style TargetType="{x:Type ListBoxItem}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Name}" Value="A">
<Setter Property="Background" Value="Yellow" />
</DataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=Name}" Value="S" />
</MultiDataTrigger.Conditions>
<MultiDataTrigger.Setters>
<Setter Property="Background" Value="LightGreen" />
</MultiDataTrigger.Setters>
</MultiDataTrigger>
</Style.Triggers>
</Style>
<DataTemplate DataType="{x:Type c:Person}">
<Canvas Width="260" Height="20">
<TextBlock FontSize="12" Width="130" Canvas.Left="0" Text="{Binding Path=Name}"/>
</Canvas>
</DataTemplate>
</Window.Resources>
<StackPanel>
<TextBlock FontSize="18" Margin="5" FontWeight="Bold"
HorizontalAlignment="Center">Data Trigger Sample</TextBlock>
<ListBox Width="250" HorizontalAlignment="Center" Background="White"
ItemsSource="{Binding Source={StaticResource PeopleData}}"/>
</StackPanel>
</Window>
//File:Window.xaml.vb
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Data
Imports System.Windows.Documents
Imports System.Windows.Input
Imports System.Windows.Media
Imports System.Windows.Media.Imaging
Imports System.Windows.Shapes
Imports System.Collections.ObjectModel
Namespace DataTriggerSample
Public Partial Class Window1
Inherits System.Windows.Window
Public Sub New()
InitializeComponent()
End Sub
End Class
Public Class Person
Private _name As String
Public Property Name() As String
Get
Return _name
End Get
Set
_name = value
End Set
End Property
Public Sub New(name As String)
Me._name = name
End Sub
End Class
Public Class People
Inherits ObservableCollection(Of Person)
Public Sub New()
Add(New Person("A"))
Add(New Person("B"))
Add(New Person("C"))
End Sub
End Class
End Namespace
Related examples in the same category