我只是注意到在我的项目的某些地方,我忘了使用我的Int / DoubleToStringValueConverter和我的TwoWay绑定,但他们仍然在工作。
那里有某种隐式转换吗?我实际上知道字符串 - >颜色,颜色 - >字符串转换,我有时使用但不使用数字 - >字符串,字符串 - >数字。所以你能推荐一个我可以阅读的文件,我应该什么时候使用转换器,什么时候不应该?
答案 0 :(得分:0)
来自MSDN上Data Conversion文章的Data Binding Overview部分:
[...]默认转换可能因类型而异 绑定到的类型中存在的转换器。这种行为 将取决于目标中可用的类型转换器。如果 如果有疑问,请创建自己的转换器。
以下是一些有意义的实施方案 数据转换器:
•您的数据应以不同方式显示, 取决于文化。例如,您可能想要实现一个 货币转换器或日历日期/时间转换器基于 特定文化中使用的价值观或标准。
•使用的数据不一定用于更改文本 一个属性的值,而是旨在改变其他一些属性 值,例如图像的来源,或者颜色或样式 显示文字。转换器可以在此实例中使用转换器 绑定一个似乎不合适的属性,例如 将文本字段绑定到表格单元格的Background属性。
•多个控件或多个控件属性 绑定到相同的数据。在这种情况下,主要绑定可能只是 显示文本,而其他绑定处理特定显示 问题但仍然使用与源信息相同的绑定。
•到目前为止,我们还没有讨论过目标的MultiBinding property有一组绑定。在MultiBinding的情况下, 您使用自定义IMultiValueConverter从中生成最终值 绑定的值。例如,可以从中计算颜色 红色,蓝色和绿色值,可以是相同或的值 不同的绑定源对象。请参阅MultiBinding类页面 例子和信息。