1. 前文
在普遍的也业务系统中, 数据要驱动到操作的用户界面, 它实际储存的方式和表达方式会多种多样, 数据库存储的数字 0或1, 在界面用户看到显示只是 成功或失败, 或者存储的字符、或更多的格式,
但是最终到界面上, 一般是需要一个转换, 至于这个转换是在数据库中, 还是业务代码中, 都是一个必不可少的操作。
2. WPF转换器 ( IValueConverter )
WPF中, 提供一种数据转换的接口、那就是在 System.Windows.Data 命名空间下的,IValueConverter 接口, 该接口的Convert方法可以任意的数据转换操作。
namespace System.Windows.Data{ // // 摘要: // 提供将自定义逻辑应用于绑定的方法。 public interface IValueConverter { // // 摘要: // 转换值。 // // 参数: // value: // 绑定源生成的值。 // // targetType: // 绑定目标属性的类型。 // // parameter: // 要使用的转换器参数。 // // local="clr-namespace:WpfApp4" xmlns:converter="clr-namespace:WpfApp4.Converter" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800"> <Window.Resources> <converter:StatusConverter x:Key="StatusConverter"/> <Style x:Key="TextBlockStyle" TargetType="{x:Type TextBlock}"> <Setter Property="TextWrapping" Value="NoWrap"/> <Setter Property="TextTrimming" Value="None"/> <Setter Property="VerticalAlignment" Value="Center"/> <Setter Property="HorizontalAlignment" Value="Center"/> <Setter Property="FontSize" Value="25"/> </Style> </Window.Resources> <Grid> <UniformGrid Rows="2" Columns="2" > <TextBlock Text="没有使用转换器的效果:" Style="{DynamicResource TextBlockStyle}" /> <TextBlock Text="{Binding Status}" Style="{DynamicResource TextBlockStyle}"/> <TextBlock Text="使用转换器的效果:" Style="{DynamicResource TextBlockStyle}"/> <TextBlock Text="{Binding Status,Converter={StaticResource StatusConverter}}" Style="{DynamicResource TextBlockStyle}"/> </UniformGrid> </Grid></Window>测试效果 :

结尾:
WPF中, 还有一种转换器, 同样是位于 System.Windows.Data命名空间的IMultiValueConverter 接口, 通过ILSpy可以查看到,如下所示:

IMultiValueConverter 的作用则可能进行多个数据源绑定, 这种骚操作称之为, 多路绑定, 根据多个数据库来决定最后显示的内容。
到此这篇关于WPF转换器IValueConverter用法的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。








