数据绑定与模板应用全解析
1. 数据转换的重要性与实现方式
在普通的数据绑定中,信息通常从数据源直接传输到目标,不做任何更改。然而,实际应用中,数据源可能采用底层表示形式,不适合直接在用户界面显示。例如,可能需要将数字代码替换为易读的字符串,对数字进行格式调整,或者以长格式显示日期等。如果使用双向绑定,还需要将用户输入的数据转换为适合存储在数据对象中的格式。
Silverlight 提供了值转换器(Value Converter)来解决这些问题。值转换器负责在数据显示前将源数据转换为目标格式,在双向绑定中,还会在将新的目标值应用回源数据之前进行反向转换。
值转换器有多种用途:
- 数据格式化 :将数据格式化为字符串表示,如将数字转换为货币字符串。
- 对象创建 :创建特定类型的 Silverlight 对象,如将二进制数据转换为 BitmapImage
对象。
- 条件格式应用 :根据绑定数据有条件地更改元素的属性,如改变元素的背景颜色以突出特定范围内的值。
2. 使用值转换器格式化字符串
值转换器是将需要显示为文本的数字进行格式化的理想工具。以 Product.UnitCost
属性为例,它存储为十进制数,在文本框中显示时可能会出现多余的小数位且缺少货币符号。更直观的表示应该是货币格式化后的值,如 $49.99。
创建值转换器需要以下三个步骤:
1. 创建一个实现 IValueConvert