实现wpf的值转换器

时间:2023-03-09 13:20:19
实现wpf的值转换器

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