WPF 格式化输出- IValueConverter接口的使用 datagrid列中的值转换显示
2021-03-19 05:25
标签:ebe als 文字 字段 res 显示 title 怎么办 ali 以前在用ASP.NET 做B/S系统时,可以方便地在GRIDVIEW DATAList等数据控件中,使用自定义的代码逻辑,比如 使用 这样的调用, 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 object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) return titleInt; #endregion 2.前台调用 首先需要在窗口中声明转换器类名称空间 并定义一个转换器资源 这样就实现了前台根据数据中的整数 显示不同的职称。 WPF 格式化输出- IValueConverter接口的使用 datagrid列中的值转换显示 标签:ebe als 文字 字段 res 显示 title 怎么办 ali 原文地址:https://www.cnblogs.com/hanzq/p/12335109.html
public class TitleConverter:IValueConverter
{
#region IValueConverter 成员
{
int titleInt = (int)value;
string titleStr = string.Empty;
switch (titleInt)
{
case 5:
titleStr = "教授";
break;
case 4:
titleStr = "副教授";
break;
case 3:
titleStr = "高工";
break;
case 2:
titleStr = "研究员";
break;
case 1:
titleStr = "讲师";
break;
}
return titleStr;
}
{
string titleStr = value.ToString();
int titleInt = 0;
switch (titleStr)
{
case "教授":
titleInt = 5;
break;
case "副教授":
titleInt = 4;
break;
case "高工":
titleInt = 3;
break;
case "研究员":
titleInt = 2;
break;
case "讲师":
titleInt = 1;
break;
}
}
}
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:EvalStarServer.BLL"
Title="UserManage" >
文章标题:WPF 格式化输出- IValueConverter接口的使用 datagrid列中的值转换显示
文章链接:http://soscw.com/index.php/essay/66106.html