5.2.3 WPF 中 XAML 文件 Converter 使用介绍

        Converter(转换器)在 WPF 数据绑定中扮演着重要角色,用于在源数据和目标属性之间进行值转换

        举例来说:我想用一个bool量来控制一个背景,为true时,显示红色;为false时背景用默认颜色。因此 Background="{Binding 某bool量}",这个bool量不是颜色值,怎么转换成颜色值?就需要一个继承自IValueConverter的转换器。见例子所示:

例一:bool量转换成颜色。

      注意需要先在window.Resources中把这个类引用过来。

      因为我这个转换类的命名空间就是这个定义的local中,可以直接写

 <local:BooleanToColorConverter x:Key="BooleanToColorConverter"/>

        如果命名空间不一致,则见例子2。

  最终效果如下:

<Window.Resources><local:BooleanToColorConverter x:Key="BooleanToColorConverter"/>
</Window.Resources>
<Grid><StackPanel  ><Border Height="50" Width="100" Background="{Binding BSetRed,Converter={StaticResource BooleanToColorConverter}, ConverterParameter=Red}"/><Button Content="反转颜色" Click="Button_Click"     /></StackPanel></Grid>
public class BooleanToColorConverter : IValueConverter
{public object Convert(object value, Type targetType, object parameter, CultureInfo culture){if((bool)value){return parameter;}else{return DependencyProperty.UnsetValue;}}public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture){return (value == parameter);}
}
 public partial class Window1 : Window,INotifyPropertyChanged{bool bSetRed = false;public event PropertyChangedEventHandler PropertyChanged;public bool BSetRed { get => bSetRed;set { bSetRed = value;PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("BSetRed"));} }public Window1(){InitializeComponent();DataContext = this;}private void Button_Click(object sender, RoutedEventArgs e){BSetRed = !bSetRed;}}

例2:bool量转换成颜色。转换类放到其他命名空间下,比如Common.

此时因local下找不到这个类,所以报警。

此时:追加一个common的命名空间。然后程序可以正常运行。

namespace AhuiPLC_CurveRecord.Common
{public class BooleanToColorConverter : IValueConverter{public object Convert(object value, Type targetType, object parameter, CultureInfo culture){if((bool)value){return parameter;}else{return DependencyProperty.UnsetValue;}}public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture){return (value == parameter);}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/78013.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL 8 自动安装脚本(CentOS-7 系统)

文章目录 一、MySQL 8 自动安装脚本脚本说明&#x1f4cc; 使用脚本前提条件1. 操作系统2. 用户权限3. 网络要求 &#x1f4cc; 脚本的主要功能1. 环境检查2. MySQL 自动安装3. 自动配置 MySQL4. 防火墙配置5. 验证与输出 &#x1f4cc; 适用场景 二、执行sh脚本1. 给予脚本执行…

Python跨平台桌面应用程序开发

引言 在当今软件开发领域&#xff0c;跨平台应用程序开发变得越来越重要。用户希望无论使用Windows、macOS还是Linux系统&#xff0c;都能获得一致的应用体验。Python作为一种高级编程语言&#xff0c;凭借其简洁的语法和丰富的库生态系统&#xff0c;成为了跨平台桌面应用程序…

使用 Docker 安装 SQL Server 2022 并解决 Navicat 连接问题

在使用 Docker 安装 SQL Server 时&#xff0c;很多人可能遇到过无法通过 Navicat 等数据库客户端连接到容器的情况。尤其是尝试使用 mcr.microsoft.com/mssql/server:2022-latest 镜像时&#xff0c;可能会发现 Navicat一直转圈&#xff0c;无法连接到数据库。在这篇博客中&am…

2025最新软件测试面试八股文(答案+文档+视频讲解)

1、你的测试职业发展是什么&#xff1f; 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前3年积累测试经验&#xff0c;按如何做好测试工程师的要点去要求自己&…

理解计算机系统_网络编程(2)

前言 以<深入理解计算机系统>(以下称“本书”)内容为基础&#xff0c;对程序的整个过程进行梳理。本书内容对整个计算机系统做了系统性导引,每部分内容都是单独的一门课.学习深度根据自己需要来定 引入 接续上一篇理解计算机系统_网络编程(1)-CSDN博客 国际互联…

【盈达科技】GEO(生成式引擎优化)底层逻辑

​​一、GEO的现状​​ ​​技术快速迭代​​ 生成式AI&#xff08;如ChatGPT、Claude、Google SGE&#xff09;正在成为用户获取信息的核心入口&#xff0c;传统搜索引擎的流量被分流。主流平台如Google推出“生成式搜索体验&#xff08;SGE&#xff09;”&#xff0c;Bing整合…

VS Code 智能代理模式:重塑开发体验

在编程领域&#xff0c;效率与精准度无疑是开发者们永恒的追求。而如今&#xff0c;VS Code 推出的智能代理模式&#xff08;Agent Mode&#xff09;&#xff0c;正以前所未有的方式&#xff0c;彻底颠覆了传统开发流程&#xff0c;为程序员们带来了一场前所未有的效率革命。本…

【回眸】Aurix TC397 IST 以太网 UDP 相关开发

前言 关于移植IST功能至 Infineon TC397上主要涉及到UDP发送报文及接收。IST是安全诊断相关的工作 Nvidia IST介绍 Orin系列芯片会提供一种机制来检测由系统内测&#xff08;IST&#xff09;所产生的永久的故障&#xff0c;IST 应该在 Orin-x 功能安全系统中使用期间被启动。…

Mediamtx与FFmpeg远程与本地推拉流使用

1.本地推拉流 启服 推流 ffmpeg -re -stream_loop -1 -i ./DJI_0463.MP4 -s 1280x720 -an -c:v h264 -b:v 2000k -maxrate 2500k -minrate 1500k -bufsize 3000k -rtsp_transport tcp -f rtsp rtsp://127.0.0.1:8554/stream 拉流 ffplay -rtsp_transport tcp rtsp://43.136.…

使用QML Tumbler 实现时间日期选择器

目录 引言相关阅读项目结构示例实现与代码解析示例一&#xff1a;时间选择器&#xff08;TimePicker&#xff09;示例二&#xff1a;日期时间选择器&#xff08;DateTimePicker&#xff09; 主窗口整合运行效果总结下载链接 引言 在现代应用程序开发中&#xff0c;时间与日期选…

R语言中的常用内置函数

常用的数值函数 常用的字符函数 与概率分布相关的函数 有用的统计函数 数据来源:《数据挖掘与数据分析&#xff1a;基于R语言》王阳 2024年1月出版

org.springframework.core.env.PropertiesPropertySource 类详解

org.springframework.core.env.PropertiesPropertySource 类详解 1. 基本概述 类路径: org.springframework.core.env.PropertiesPropertySource继承关系: 继承自 PropertySource<Properties>&#xff0c;实现 PropertySource 接口。作用: 将 Java Properties 对象&…

2025-04-22 李沐深度学习5 —— 线性回归

文章目录 1 案例介绍1.1 应用场景&#xff1a;美国房价预测1.2 核心假设1.3 线性回归与神经网络的关系1.4 平方损失&#xff08;L2 Loss&#xff09;1.5 训练模型&#xff1a;最小化损失 2 基础优化算法2.1 梯度下降2.2 小批量随机梯度下降&#xff08;Mini-batch SGD&#xff…

你的大模型服务如何压测:首 Token 延迟、并发与 QPS

写在前面 大型语言模型(LLM)API,特别是遵循 OpenAI 规范的接口(无论是 OpenAI 官方、Azure OpenAI,还是 DeepSeek、Moonshot 等众多兼容服务),已成为驱动下一代 AI 应用的核心引擎。然而,随着应用规模的扩大和用户量的增长,仅仅关注模型的功能是不够的,API 的性能表…

数字化转型避坑指南:中钧科技如何用“四个锚点”破解转型深水区

数字化转型浪潮下&#xff0c;企业常陷入四大典型陷阱&#xff1a;跟风式投入、数据沼泽化、流程伪在线、安全裸奔化。中钧科技旗下产品以“经营帮”平台为核心&#xff0c;通过针对性方案帮助企业绕开深坑。 陷阱一&#xff1a;盲目跟风&#xff0c;为数字化而数字化 许…

时分复用、频分复用和码分复用简要比较分析

时分复用&#xff08;TDM&#xff09;、频分复用&#xff08;FDM&#xff09;和码分复用&#xff08;CDM&#xff09;是经典的多路复用技术&#xff0c;它们通过不同的方式共享信道资源。以下是两者的详细比较及其优缺点&#xff1a; 1. 原理对比 时分复用&#xff08;TDM&…

MCP认证难题破解:常见技术难题实战分析与解决方案

MCP认证难题破解:常见技术难题实战分析与解决方案 一、引言:MCP认证——智能协作领域的“技术试金石” MCP(Multi-agent Communication Protocol)认证作为多智能体系统领域的权威认证,旨在考察考生对MCP协议设计、智能体协作架构、分布式系统优化等核心技术的掌握程度。…

最新iOS性能测试方法与教程

一、工具instrument介绍 使用Xcode的instrument进行测试&#xff0c;instrument自带了很多性能方面的测试工具&#xff0c;如图所示&#xff1a; 二、常见性能测试内容 不管是安卓还是iOS的性能测试&#xff0c;常见的性能测试都要包含这五个方面&#xff1a; 1、内存&#xff…

Vue el-checkbox 虚拟滚动解决多选框全选卡顿问题 - 高性能处理大数据量选项列表

一、背景 在我们开发项目中&#xff0c;经常会遇到需要展示大量选项的多选框场景&#xff0c;比如权限配置、数据筛选等。当选项数量达到几百甚至上千条时&#xff0c;传统的渲染方式全选时会非常卡顿&#xff0c;导致性能问题。本篇文章&#xff0c;记录我使用通过虚拟滚动实现…

JWT的token泄露要如何应对

文章目录 前言✅ 一、预防措施&#xff08;防泄露&#xff09;&#x1f6a8; 二、应急响应机制&#xff08;发现已泄露&#xff09;&#x1f512; 1. **启用 Token 黑名单机制**&#x1f501; 2. **启用 Refresh Token 机制 旋转令牌**&#x1f4cd; 3. **强制下线机制**&…