WPF转换器IValueConverter用法

2022-04-16 20:29:48

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转换器IValueConverter用法

结尾:

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

WPF转换器IValueConverter用法

IMultiValueConverter 的作用则可能进行多个数据源绑定, 这种骚操作称之为, 多路绑定, 根据多个数据库来决定最后显示的内容。

到此这篇关于WPF转换器IValueConverter用法的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持我们。