以前在用ASP.NET 做B/S系统时,可以方便地在GRIDVIEW
DATAList等数据控件中,使用自定义的代码逻辑,比如
使用 <%# GetBalance(custID) %>
这样的调用, GetBalance()为在codebehind类中定义的方法;
在WPF应用程序中有时也有类似的需求,比如数据库表Teacher中有一个字段 Title ,int
类型,取值为1-5,分别对应讲师 研究员 高工 副教授 教授
。在wpf窗口中需要直接显示 讲师 研究员
类似的文字,而不是一个1-5的数字,从界面设计的角度 ,用文字来表示职称是最自然的方式。因此在数据绑定的时候需要将整数转换为对应的文本职称。
但是WPF没有象ASP。NET那样的绑定表达式用法;该怎么办呢?
WPF框架提供了一个IValueConverter接口,负责数据源到数据控件绑定时,自定义转换逻辑。使用它包括以下步骤:
1.创建一个只转换器类,实现该接口;
2.给该类加入ValueConversion属性,并制定源类型和目标类型;
3.实现该接口的两个方法,Convert()与ConvertBack()
4.按照1-3创建类之后,在数据绑定控件中,设定Converter为该类的一个实例;
具体要完成上述功能:
1.首先创建实现 IValueConverter的类:
//指定转换器源类型和目标类型
[ValueConversion(typeof(int),
typeof(string))]
public class
TitleConverter:IValueConverter
{
//实现接口的两个方法
#region IValueConverter 成员
public object Convert(object value, Type targetType, object
parameter, System.Globalization.CultureInfo culture)
{
int titleInt = (int)value;
string titleStr = string.Empty;
switch (titleInt)
{
case 5:
titleStr = "教授";
break;
case 4:
titleStr = "副教授";
break;
case 3:
titleStr = "高工";
break;
case 2:
|