从数据库取出来的数据是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}}"/>