C# wpf中关于binding的converter无效的情况

最近碰到bingding设置了convert转换无效的问题。困扰了我好久。这里记录分析一下。

先说下现象

我把TextBox的text属性  绑定到了对应的 convert.代码如下

希望吧pd_no转义成产品名称

断点跟进显示转换器有效且转换成功了,但界面却没有显示对应的 pd_no转换后的 产品名称。

同样的绑定。在datagrid中的cloumn中,却成功的转换成产品名称了

想了半天没想明白。

注意到 DictConverter的convert函数,返回值类型是StringBuilder。恍然大悟。convert函数的返回类型是object 你可以给她返回任意对象。但是TextBox的Text属性是string类型。

你给她返回一个StringBuilder,她似乎不知道咋显示了。(这里应该StringBuilder和string没有啥亲戚关系。系统没有默认的转换,自己推断,如有问题请指教)。于是加一个

retrun aaa.toString();

OK ,显示成功。object类型的返回值,你返回啥她都吃了,但吃了对应的界面控件中的属性,不是所有类型都能消化0.0.这里好好好想明白。

感觉c#的Object类型,是一个很灵活也有很容易忽略问题的东西。是一把双刃剑。但必须得好好掌握!

 

 

转载于:https://www.cnblogs.com/CSSZBB/p/8287458.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WPF绑定转换器(Binding Converter)是一种用于在数据绑定过程进行数据转换的功能。在WPF,我们可以使用数据绑定来将数据源(如属性、集合等)与UI元素(如控件属性、集合等)进行关联。而绑定转换器则可以在将数据源的数据传递给UI元素之前,对数据进行一些转换操作。 绑定转换器通常实现了IValueConverter接口,该接口定义了两个方法:Convert和ConvertBack。Convert方法用于将数据源的值转换为目标类型的值,而ConvertBack方法则用于将目标类型的值转换回数据源类型的值。在进行数据绑定时,我们可以通过指定绑定转换器来对数据进行适当的转换。 使用绑定转换器有助于实现更灵活的数据绑定操作。例如,我们可以使用绑定转换器将数据源的布尔值转换为可见性类型,以便控制UI元素的可见性。或者,我们可以使用绑定转换器将数据源的时间戳转换为可读的日期时间格式。还可以使用绑定转换器将数据源的枚举值转换为对应的文本描述。 要使用绑定转换器,我们首先需要实现一个继承自IValueConverter接口的类。然后,在XAML定义该绑定转换器,并在相应的数据绑定指定使用该转换器。可以通过绑定转换器的Converter属性来实现。 总而言之,WPF绑定转换器是一种在数据绑定过程进行数据转换的机制。它允许我们灵活地对数据进行适当的转换,以满足UI元素与数据源之间的差异。通过使用绑定转换器,我们可以更加简单而且高效地处理数据绑定相关的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值