无废话WPF系列11: 数据转换

有时我们展现的数据,需要进行转换,比如如果一个学生的成绩过了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();
         }
     }
}

 

运行结果

image

本文转自敏捷的水博客园博客,原文链接http://www.cnblogs.com/cnblogsfans/archive/2011/02/19/1958658.html如需转载请自行联系原作者


王德水

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值