<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=RelationshipType}" Value="Family">
<Setter Property="Background" Value="Yellow" />
</DataTrigger>
<DataTrigger Binding="{Binding Path=RelationshipType}" Value="Friend">
<Setter Property="Background" Value="Pink" />
</DataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Path=Name}" Value="A" />
<Condition Binding="{Binding Path=RelationshipType}" Value="Best Friend" />
</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}"/>
<TextBlock FontSize="12" Width="130" Canvas.Left="130" Text="{Binding Path=RelationshipType}"/>
</Canvas>
</DataTemplate>
</Window.Resources>
<StackPanel>
<TextBlock FontSize="18" 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
Private _relationshipType As String
Public Property Name() As String
Get
Return _name
End Get
Set
_name = value
End Set
End Property
Public Property RelationshipType() As String
Get
Return _relationshipType
End Get
Set
_relationshipType = value
End Set
End Property
Public Sub New(name As String, relationshiptype As String)
Me._name = name
Me._relationshipType = relationshiptype
End Sub
End Class
Public Class People
Inherits ObservableCollection(Of Person)
Public Sub New()
Add(New Person("A", "Friend"))
Add(New Person("C", "Family"))
Add(New Person("B", "Friend"))
End Sub
End Class
End Namespace
|