从数据库取出来的数据是1,2,3,4,5,不过要显示在控件上的,是1,2,3,4,5对应的string值,怎么办?wpf提供了很好的实现方法,那就是值转换器,我们需要做的是:
1、定义值转换类,继承IValueConverter接口
2、实现接口的Convert()与ConvertBack()方法
3、在xaml中引入此命名空间
4、在xaml中定义供引用的值转换元素
5、在需要显示数据的控件上绑定第4个步骤的元素与绑定数据源
定义值转换类TypeToStringTypeConverter 并实现接口IValueConverter方法
public class TypeToStringTypeConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
jbase j = new jbase(;
int temp = (int)value;
switch (temp)
{
case 0:
return "教授";
break;
case 1:
return "教师";
break;
case 2:
return "学生";
break;
case 3:
return "校长";
break;
default:
return " ";
break;
} } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
在xaml中引入此命名空间。类TypeToStringTypeConverter隶属于命名空间WpfApplication1,所以引入命名空间WpfApplication1
xmlns:CV="clr-namespace:WpfApplication1"
在xaml中定义供引用的值转换元素,提供x:Key键值供其它控件调用。注意:此元素要放在Resources节点
<CV:TypeToStringTypeConverter x:Key="ToTypeNow"/>
显示数据的控件调用元素
<DataGridTextColumn Header="角色" Binding="{Binding Path=Type, Converter={StaticResource ToTypeNow}}"/>