发布时间:2026/8/22 14:40:41
wpf之数据类型转换 前言wpf中经常有这种需求比如内存中存在一个Bool类型的变量界面有个控件的背景色由内存中bool变量来控制当变量为true时界面为绿色当变量为false时界面为空色这时直接使用数据绑定是不可行的比如将界面控件的background属性和内存中的bool变量直接绑定这是不行的所以需要数据转换作为桥梁。1、数据转换实现主要是通过实现IValueConverter接口来实现该接口中存在Convert和ConvertBack两个方法Convert 负责把绑定源的值转换成绑定目标的值ConvertBack 负责把绑定目标的值转换回绑定源的值publicclassBoolToColorConverter:IValueConverter{publicobjectConvert(objectvalue,TypetargetType,objectparameter,CultureInfoculture){if(valueisbool){SolidColorBrushbgBrush((bool)value)?newSolidColorBrush((Color)ColorConverter.ConvertFromString(GREEN)):newSolidColorBrush((Color)ColorConverter.ConvertFromString(RED));returnbgBrush;}else{returnnewSolidColorBrush((Color)ColorConverter.ConvertFromString(RED));}}publicobjectConvertBack(objectvalue,TypetargetType,objectparameter,CultureInfoculture){if(valueisSolidColorBrush){SolidColorBrushbrushvalueasSolidColorBrush;if(brush.ColorColors.Green){returntrue;}else{returnfalse;}}else{returnnull;}}}然后通过下面的代码将这个类转变为可通过key引用的资源。Window.Resourceslocal:BoolToColorConverterx:KeyBoolToColor//Window.Resources最后看下面的代码中Button的Background属性和CheckBox 的IsChecked属性绑定Converter{StaticResource BoolToColor}指定使用什么转换。Windowx:Classwpf之转换器.MainWindowxmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentationxmlns:xhttp://schemas.microsoft.com/winfx/2006/xamlxmlns:dhttp://schemas.microsoft.com/expression/blend/2008xmlns:mchttp://schemas.openxmlformats.org/markup-compatibility/2006xmlns:localclr-namespace:wpf之转换器mc:IgnorabledTitleMainWindowHeight450Width800Window.Resourceslocal:BoolToColorConverterx:KeyBoolToColor//Window.ResourcesGridStackPanelOrientationVerticalCheckBoxHeight50x:Namecheck_test/ButtonHeight 100Background{Binding IsChecked,ElementNamecheck_test ,Converter{StaticResource BoolToColor}}//StackPanel/Grid/Window1当你选中CheckBox时Button背景色变为绿色2当你取消选中CheckBox时Button背景色变为红色选中或者取消选中实际上调用的是Convert方法将bool类型转为为颜色。马工撰写的年入30万C#上位机项目实战必备教程点击下方链接即可访问文章目录1、《C#串口通信从入门到精通》2、《C#与PLC通信从入门到精通 》3、《C# Modbus通信从入门到精通》4、《C#Socket通信从入门到精通 》5、《C# MES通信从入门到精通》6、《winform控件从入门到精通》7、《C#操作MySql数据库从入门到精通》

相关新闻

2026/8/22 15:55:46

SSD发展简史:从1980年到2026年,固态硬盘46年进化全记录

摘要: 本文梳理SSD从1980年代诞生到2026年的完整发展历程——从早期的军工/航天应用到消费市场普及,从SLC独占到3D NAND QLC量产,从SATA瓶颈到PCIe 5.0破万MB/s。通过关键时间节点、里程碑产品和转折事件,帮你建立SSD技术演进的宏…

2026/8/22 15:55:46

PS1 存档如何管理?MemcardRex 记忆卡编辑完整指南

PS1 存档如何管理?MemcardRex 记忆卡编辑完整指南 【免费下载链接】memcardrex Advanced PlayStation 1 Memory Card editor 项目地址: https://gitcode.com/gh_mirrors/me/memcardrex MemcardRex 是一款 PS1 记忆卡管理工具,覆盖记忆卡文件打开、…

2026/8/22 15:55:45

点了停止,模型为什么还可能继续跑

按钮、浏览器、SSE 服务和上游模型,是四个不同的停止边界。 摘要| 我沿 Microi吾码当前 AI 流式链路,从停止按钮追到 AbortController、SSE、服务端和上游调用。结论:点击停止可结束浏览器读取;只有取消信号继续穿过服…

2026/8/22 15:55:45

DM在水平分区表建立索引:提升大数据环境下查询性能的关键技术

一、DM水平分区表建立索引概述 1.1 DM数据库分区表的基本概念 DM数据库作为中国自主研发的数据库管理系统,其分区表技术允许将大型表数据分散存储在多个物理分区中,从而提高数据管理效率和查询性能。水平分区表是指按照特定条件将表的数据行划分到不同的…

2026/8/22 15:55:45

她把最后一颗种子送进风暴:18秒如何讲清选择与代价

一颗种子、一个拉杆、一次个人记忆的熄灭:18秒只保留能改变世界的动作。 摘要| 《风眼种库》是一支原创18秒横屏电影短片:风暴逼近,21岁亚洲成年种库工程师必须在保住个人档案与重启城市清洁空气核心之间选择。她拉下释放杆&#…

2026/8/22 15:50:45

题解:洛谷 P1697 [USACO18JAN] Lifeguards B

本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。 欢迎大家订阅我的专栏:算法…

2026/8/21 13:13:49

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/21 20:14:07

工业传感器与变送器详解:序章 从物理世界到工业数据

序章 从物理世界到工业数据 ——重新认识工业传感器与变送器 工业自动化系统正变得日益复杂。今天的工业现场早已不是简单的控制回路,而是由多层技术共同构成的立体体系:PLC、DCS、SCADA、MES、工业互联网、边缘计算与人工智能。控制系统可以执行复杂算法,工业网络可以实现…

2026/8/21 15:40:01

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/21 15:40:01

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/22 1:39:53

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…