WPF转换器
2021-03-29 02:26
标签:turn 代码 throw block 业务 except sum 不可 object 1. 前文 在普遍的也业务系统中, 数据要驱动到操作的用户界面, 它实际储存的方式和表达方式会多种多样, 数据库存储的数字 0或1, 在界面用户看到显示只是 成功或失败, 或者存储的字符、或更多的格式, 但是最终到界面上, 一般是需要一个转换, 至于这个转换是在数据库中, 还是业务代码中, 都是一个必不可少的操作。 2. WPF转换器 ( IValueConverter ) WPF中, 提供一种数据转换的接口、那就是在 System.Windows.Data 命名空间下的, IValueConverter 接口, 改接口的Convert方法可以任意的数据转换操作。 3.如何使用转换器 为了更够简单的描述其作用, 在后台声明一个int类型为 Status的变量, 然后通过绑定的形式关联的界面层。( 如下创建MainViewModel层,主要用于关联DataContext ) 用户界面绑定的Status字段, 为了能够看到实际效果, 用了相同的字段绑定两个进行比较, 如下 声明一个 StatusConverter 转换器 , 改转换器实现了,将数据 0 设置为未完成, 为1 则设置为完成。 界面层引用改转换器, 完整代码, 红色加粗部分为引用声明的转换器。 测试效果 : 结尾: WPF中, 还有一种转换器, 同样是位于 System.Windows.Data命名空间的 IMultiValueConverter 接口, 通过ILSpy可以查看到,如下所示: IMultiValueConverter 的作用则可能进行多个数据源绑定, 这种骚操作称之为, 多路绑定, 根据多个数据库来决定最后显示的内容。 后面会单独一篇文章介绍IMultiValue的使用场景和使用方法。 WPF转换器 标签:turn 代码 throw block 业务 except sum 不可 object 原文地址:https://www.cnblogs.com/zh7791/p/9311332.htmlnamespace System.Windows.Data
{
//
// 摘要:
// 提供将自定义逻辑应用于绑定的方法。
public interface IValueConverter
{
//
// 摘要:
// 转换值。
//
// 参数:
// value:
// 绑定源生成的值。
//
// targetType:
// 绑定目标属性的类型。
//
// parameter:
// 要使用的转换器参数。
//
// culture:
// 要用在转换器中的区域性。
//
// 返回结果:
// 转换后的值。 如果该方法返回 null,则使用有效的 null 值。
object Convert(object value, Type targetType, object parameter, CultureInfo culture);
//
// 摘要:
// 转换值。
//
// 参数:
// value:
// 绑定目标生成的值。
//
// targetType:
// 要转换为的类型。
//
// parameter:
// 要使用的转换器参数。
//
// culture:
// 要用在转换器中的区域性。
//
// 返回结果:
// 转换后的值。 如果该方法返回 null,则使用有效的 null 值。
object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture);
}
}
public class MainViewModel : ViewModelBase
{
///
public class StatusConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value != null && int.TryParse(value.ToString(), out int result))
{
if (result == 1)
{
return "完成";
}
}
return "未完成";
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}