有时我们展现的数据,需要进行转换,比如如果一个学生的成绩过了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如需转载请自行联系原作者
王德水