有时我们展现的数据,需要进行转换,比如如果一个学生的成绩过了60,我们显示一个Pass的图片。
XAML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<
Window
x:Class="DeepXAML.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:DeepXAML"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Title="MainWindow" Height="250" Width="450">
<
Window.Resources
>
<
local:ScoreToImageConverter
x:Key="sti"></
local:ScoreToImageConverter
>
</
Window.Resources
>
<
StackPanel
>
<
ListBox
x:Name="listBoxStudents" Margin="10">
<
ListBox.ItemTemplate
>
<
DataTemplate
>
<
StackPanel
Orientation="Horizontal">
<
TextBlock
Text="{Binding Path=Name}"></
TextBlock
>
<
Image
Source="{Binding Path=Score,Converter={StaticResource sti}}" Height="20"></
Image
>
</
StackPanel
>
</
DataTemplate
>
</
ListBox.ItemTemplate
>
</
ListBox
>
</
StackPanel
>
</
Window
>
|
后台代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
using
System;
using
System.Collections.Generic;
using
System.Windows;
using
System.Windows.Data;
using
System.Windows.Documents;
namespace
DeepXAML
{
public
partial
class
MainWindow : Window
{
public
MainWindow()
{
InitializeComponent();
List<Student> students =
new
List<Student>{
new
Student{ Name=
"Jack"
, Score=90},
new
Student{Name=
"Tom"
, Score=30},
new
Student{ Name=
"David"
, Score=80}
};
this
.listBoxStudents.ItemsSource = students;
}
}
public
class
Student
{
public
string
Name {
get
;
set
; }
public
double
Score {
get
;
set
; }
}
public
class
ScoreToImageConverter : IValueConverter
{
public
object
Convert(
object
value, Type targetType,
object
parameter,
System.Globalization.CultureInfo culture)
{
double
score = (
double
)value;
return
score >= 60 ?
@"\images\pass.gif"
:
@"\images\nopass.gif"
;
}
public
object
ConvertBack(
object
value, Type targetType,
object
parameter,
System.Globalization.CultureInfo culture)
{
throw
new
NotImplementedException();
}
}
}
|
运行结果
本文转自敏捷的水博客园博客,原文链接http://www.cnblogs.com/cnblogsfans/archive/2011/02/19/1958658.html如需转载请自行联系原作者
王德水