WPF - 数据绑定时是否存在某种隐式转换?

时间:2014-07-16 13:08:20

标签: c# wpf data-binding converter

我只是注意到在我的项目的某些地方,我忘了使用我的Int / DoubleToStringValueConverter和我的TwoWay绑定,但他们仍然在工作。

那里有某种隐式转换吗?我实际上知道字符串 - >颜色,颜色 - >字符串转换,我有时使用但不使用数字 - >字符串,字符串 - >数字。所以你能推荐一个我可以阅读的文件,我应该什么时候使用转换器,什么时候不应该?

1 个答案:

答案 0 :(得分:0)

来自MSDN上Data Conversion文章的Data Binding Overview部分:

  

[...]默认转换可能因类型而异   绑定到的类型中存在的转换器。这种行为   将取决于目标中可用的类型转换器。如果   如果有疑问,请创建自己的转换器。

     

以下是一些有意义的实施方案   数据转换器:

     

•您的数据应以不同方式显示,   取决于文化。例如,您可能想要实现一个   货币转换器或日历日期/时间转换器基于   特定文化中使用的价值观或标准。

     

•使用的数据不一定用于更改文本   一个属性的值,而是旨在改变其他一些属性   值,例如图像的来源,或者颜色或样式   显示文字。转换器可以在此实例中使用转换器   绑定一个似乎不合适的属性,例如   将文本字段绑定到表格单元格的Background属性。

     

•多个控件或多个控件属性   绑定到相同的数据。在这种情况下,主要绑定可能只是   显示文本,而其他绑定处理特定显示   问题但仍然使用与源信息相同的绑定。

     

•到目前为止,我们还没有讨论过目标的MultiBinding   property有一组绑定。在MultiBinding的情况下,   您使用自定义IMultiValueConverter从中生成最终值   绑定的值。例如,可以从中计算颜色   红色,蓝色和绿色值,可以是相同或的值   不同的绑定源对象。请参阅MultiBinding类页面   例子和信息。