Yuan天空
Yuan天空
  • 我的主页
  • 博客随笔
  • 软件作品
    • TK精灵(进程守护)
    • 远程运维助手
    • DicomStoreSCU
    • TKOCR(离线OCR)
    • 更多...
  • 学习资源
  • 网址收藏
  • HTML模板
专注.NET开发技术领域
  1. 主页
  2. 博客
  3. 发布页

WPF 数据转换器 IValueConverter例子

WPFC#XAML前端属性转换IValueConverter
编程开发 2019-01-24 206
贴个广告
C#控件/wpf实例/WPF源码/xaml源文件/Demo程序
Loading...
C# .NET WPF UI界面控件库源码|控件源码|
Loading...
博客正文

WPF C# XAML 前端属性转换 IValueConverter

WPF的数据源绑定方式很方便,只需要在页面绑定好对应的属性即可完成数据的展现。但当需要对数据进行转换的时候 直接使用原有数据源就不行了,

打个比方:

我有个习惯,在设计数据库表时 会把代表bool 属性的字段设置为 SMLLINT 类型 (至于为什么这么设计 。。。) 这样在绑定数据源时 该属性输出也就是int16的,这个在后端处理没什么问题,但是展现使用 CheckBok 一类的控件进行展现,此类控件绑定值是bool类型 这时候原有值自然是会报错的,为这一个字段特意创建一个实体模型进行转换 又不够优雅,这时候就可以使用 IValueConverter 来进行处理

先定义一个转换器类 代码如下

 //启用状态 short 转 bool
    [ValueConversion(typeof(short?), typeof(short?))]
    public class EnabledStatusConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, 
		System.Globalization.CultureInfo culture)
        {

            if (value is null|| (short)value == 0)
            {
                return false;
            }
            else
            {
                return true;
            }
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if ((bool)value == true)
            {
                return 1;
            }
            else
            {
                return null;
            }
        }
    }

前端xaml页面使用例子

//先引用命名空间

xmlns:uc="clr-namespace:IDataConverter"  

如下图

WPF 数据转换器 IValueConverter


<ListView ItemsSource="{Binding}">
                    <ListView.Resources>
                        <uc:EnabledStatusConverter x:Key="EnabledStatusConverter" />
                    </ListView.Resources>
                    <ListView.View>
                        <GridView>
                            <GridViewColumn Header="启用状态">
                                <GridViewColumn.CellTemplate>
                                    <DataTemplate>
                                        <CheckBox ToolTip="启用状态" 
                                       IsChecked="{Binding Path=EnabledStatus,
                                       Converter={StaticResource EnabledStatusConverter}}" />
                                    </DataTemplate>
                                </GridViewColumn.CellTemplate>
                            </GridViewColumn>
                        </GridView>
                    </ListView.View>
                </ListView>
同类文章
c# 实现windows服务程序的安装、启动、暂停以及卸载 等管理功能
Loading...
c# 实现windows服务程序的安装、启动、暂停以及卸载 等管理功能
WPF GIF图片添加水印 GIF图片水印工具软件源码
Loading...
WPF GIF图片添加水印 GIF图片水印工具软件源码
 WPF Rectangle实现 虚线边框矩形 超简单
Loading...
WPF Rectangle实现 虚线边框矩形 超简单
基于C#人名币基础加减法换算最终得出<元角分>的计算结果的实现
Loading...
基于C#人名币基础加减法换算最终得出<元角分>的计算结果的实现
c#通过winAPI函数InternetGetConnectedState获得本地系统的网络连接状态
Loading...
c#通过winAPI函数InternetGetConnectedState获得本地系统的网络连接状态
WPF 使用MahApps.Metro
Loading...
WPF 使用MahApps.Metro
C# .NET中 使用GDI+ 添加图形水印
Loading...
C# .NET中 使用GDI+ 添加图形水印
C# 实现本地文件怎么转换成byte[] 进行读取操作
Loading...
C# 实现本地文件怎么转换成byte[] 进行读取操作
WPF 中RichTextBox 控件FlowDocument设置行距
Loading...
WPF 中RichTextBox 控件FlowDocument设置行距
C#怎么获取windows系统支持的字体以及字体样式
Loading...
C#怎么获取windows系统支持的字体以及字体样式
C#在.netcore实现中文汉字笔画计算 获得中文汉字的书写笔画数
Loading...
C#在.netcore实现中文汉字笔画计算 获得中文汉字的书写笔画数
C# 中使用const 常量可能会出现的版本更新问题!
Loading...
C# 中使用const 常量可能会出现的版本更新问题!
问题反馈/学习建议
1. 文明上网,理性表达,营造舒适的学习氛围
2. 请不要反馈提交与本页主题无关内容
学习资源
C#+WPF实现模仿实现的网易云音乐客户端源码
Loading...
C#+WPF实现模仿实现的网易云音乐客户端源码
[人脸检测]基于C#OpenCvSharp+haarcascade人脸、人眼模型实现人脸检测源码
Loading...
[人脸检测]基于C#OpenCvSharp+haarcascade人脸、人眼模型实现人脸检测源码
WPF实现读取USB摄像头实时视频展示以及导出实时截图的C#源码例子
Loading...
WPF实现读取USB摄像头实时视频展示以及导出实时截图的C#源码例子
wpf实现大屏幕弹幕播放效果特效源码新手可参考下.rar
Loading...
wpf实现大屏幕弹幕播放效果特效源码新手可参考下.rar
WPF实现的自定义工作大日历排班Calendar控件模板的例子源码
Loading...
WPF实现的自定义工作大日历排班Calendar控件模板的例子源码
基于.NET4.0实现的目录文件新增监视并自动化上传至ftp完整流程工具源码
Loading...
基于.NET4.0实现的目录文件新增监视并自动化上传至ftp完整流程工具源码
标题目录
  • WPF C# XAML 前端属性转换 IValueConverter