WPF DataGrid 动态修改某一个单元格的样式
WPF DataGrid 动态修改某一个单元格的样式
<DataGrid Name="main_datagrid_display" Width="1267" Height="193" Grid.Column="1"ItemsSource="{Binding DataGridModels}"><DataGrid.Columns><!--ElementStyle 设置元素样式--><DataGridTextColumn Header="状态" Width="*" IsReadOnly="True" Binding="{Binding ZhuangTai}" ElementStyle="{StaticResource textblock_textalignment_center}"></DataGridTextColumn></DataGrid.Columns>
</DataGrid>
对于 DataGrid 某一行,如果我们想要动态的对指定单元格的样式进行修改,按照上述代码,是很难去实现的,但是有时候需求就需要我们动态的修改指定的单元格,例如我这里动态对指定单元格修改前景色,所对应的绑定数据定义如下:
public class DataGridModel : INotifyPropertyChanged
{private System.Windows.Media.Brush _foreColor;public System.Windows.Media.Brush ForeColor{get { return _foreColor; }set{if (_foreColor != value){_foreColor = value;if (null != PropertyChanged){PropertyChanged(this, new PropertyChangedEventArgs("ForeColor"));}}}}public event PropertyChangedEventHandler? PropertyChanged;public DataGridModel(System.Windows.Media.Brush color){ForeColor = color;}
}
方法一:使用 DataGridTemplateColumn
<DataGrid Name="main_datagrid_display" Width="1267" Height="193" Grid.Column="1"ItemsSource="{Binding DataGridModels}"><DataGrid.Columns><!--DataGridTemplateColumn 实现--><DataGridTemplateColumn Header="状态" Width="*" IsReadOnly="True"><DataGridTemplateColumn.CellTemplate><DataTemplate><Border><TextBox Text="{Binding ZhuangTai}" Foreground="{Binding ForeColor}" VerticalContentAlignment="Center" HorizontalContentAlignment="Center"></TextBox></Border></DataTemplate></DataGridTemplateColumn.CellTemplate></DataGridTemplateColumn><!--DataGridTemplateColumn 实现--></DataGrid.Columns>
</DataGrid>
这里我在 xaml 中为 Foreground 绑定 ForeColor 属性,在后台就可以动态修改其前景色,下同。
方法二:修改 DataGridTextColumn .ElementStyle
<DataGrid Name="main_datagrid_display" Width="1267" Height="193" Grid.Column="1"ItemsSource="{Binding DataGridModels}"><DataGrid.Columns><!--DataGridTextColumn .ElementStyle 实现--><DataGridTextColumn Header="状态" Width="*" IsReadOnly="True" Binding="{Binding ZhuangTai}"><DataGridTextColumn.ElementStyle><Style TargetType="TextBlock"><Setter Property="Foreground" Value="{Binding ForeColor}"></Setter></Style></DataGridTextColumn.ElementStyle></DataGridTextColumn><!--DataGridTextColumn .ElementStyle 实现--></DataGrid.Columns>
</DataGrid>
以上两种方式得到的结果一样,可以根据实际情况再稍微调整下格式:

结语:如果修改变动不至于修改一整个单元格的话,推荐使用方法二。
相关文章:
WPF DataGrid 动态修改某一个单元格的样式
WPF DataGrid 动态修改某一个单元格的样式 <DataGrid Name"main_datagrid_display" Width"1267" Height"193" Grid.Column"1"ItemsSource"{Binding DataGridModels}"><DataGrid.Columns><!--ElementStyle 设…...
如何安装部署kafka
安装和部署Apache Kafka需要以下几个步骤,包括下载 Kafka、配置 ZooKeeper(或者使用 Kafka 自带的 Kafka Raft 模式替代 ZooKeeper),以及启动 Kafka 服务。以下是一个但基于 Linux 的典型安装流程,可以根据需要改装到其…...
Centos7-rpm包管理器方式安装MySQL 5.7.25
前言 本文用于学习通过Mysql压缩包在centos7中安装和配置的过程以及过程中碰到的Bug解决。 Mysql安装包下载和上传 MySQL :: Download MySQL Community Server (Archived Versions)https://downloads.mysql.com/archives/community/访问Mysql官方下载站,选择对应的…...
Project Online 协作版部署方案
目录 前言 第一部分:为什么选择Project Online? 一、核心优势 二、适用场景 第二部分:部署前的准备工作 一、需求分析 二、账户和权限管理 三、培训与支持 第三部分:Project Online 的核心功能 一、项目创建与管理 二、资源管理 三、团队协作 四、风险管理 五…...
小米 13 Ultra机型工程固件 资源预览与刷写说明 步骤解析
小米 13 Ultra机型---机型代码为ishtar 。工程固件可以辅助修复格机或者全檫除分区后的基带修复。可以用于修复TEE损坏。以及一些分区的底层修复。此款固件也可以为更换UFS后的底包。 通过博文了解 1💝💝💝-----此机型工程固件的资源刷写注意事项 2💝💝💝-----此…...
Goweb预防XSS攻击
XSS攻击示例 假设您有一个简单的Web应用程序,其中包含一个用户输入表单,用户可以在其中输入他们的名字,然后这个名字会被显示在页面上。攻击者可以在表单中输入恶意的JavaScript代码,如,如果应用程序没有对这个输入进…...
ICM20948 DMP代码详解(36)
接前一篇文章:ICM20948 DMP代码详解(35) 上一回讲到了icm20948_sensor_setup() ---> inv_icm20948_initialize_auxiliary函数 ---> inv_icm20948_set_slave_compass_id函数,本回开始,就对于inv_icm20948_set_sla…...
【框架】Spring、SpringBoot和SpringCloud区别
Spring Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架) IoC(Inversion of Control,控制反转)是一种设计思想,它主要用于降低软件系统中不同模块之间的耦合度,提高代码的可维护…...
计算机网络各层有哪些协议?
计算机网络的各层协议知识总结 一、物理层 没有涉及到比较重要的协议,但是有一个比较重要的技术----非对称数字用户线(ADSL) 二、数据链路层 1、点对点协议(PPP----point to point protocol,用户计算机与ISP进行通信…...
Diffusion Model Stable Diffusion(笔记)
参考资料: 文章目录 DDPM架构模型如何拥有产生逼真图片的能力Denoise模型功能Denoise模型如何训练考虑进文字 文生图流程(Stable Diffusion) DDPM架构 模型如何拥有产生逼真图片的能力 Denoise模型功能 通过Denoise将一个噪音图一步步生成为目标图像 Denoise实际…...
如何创建模板提示prompt
定义模型 from langchain_ollama import ChatOllamallm ChatOllama(base_url"http://ip:11434",model"qwen2",temperature0,tool_choice"auto" )什么是提示模板? 它的目的是根据不同的输入动态生成特定格式的文本,以便…...
C语言 | Leetcode C语言题解之第423题从英文中重建数字
题目: 题解: char * originalDigits(char * s) {int lenstrlen(s);int arr[26]{0},num[10]{0},cot0;for(int i 0; i < len; i)arr[s[i] - a];num[0] arr[z-a];num[2] arr[w-a];num[4] arr[u-a];num[6] arr[x-a];num[8] arr[g-a];num[1] arr[o…...
Jboss CVE-2017-12149 靶场攻略
漏洞简述 该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter过滤器中。该过滤器在没有进⾏任何安全检查的情况下尝试将来⾃客户端的数据流进⾏反序列化,从⽽导 致了漏洞 漏洞范围 JBoss 5.x/6.x 环境搭建 …...
ROS2 中令人困惑的rclpy.shutdown()
在使用rclpy(Robot Operating System (ROS) 2的Python客户端库)时,rclpy.spin()和rclpy.shutdown()是两个非常重要的函数,它们各自承担着不同的角色。 rclpy.spin() rclpy.spin()函数通常被用于启动一个节点的主循环。在这个循环…...
PHP纯离线搭建(php 8.1.7)
要离线从零安装 PHP 8.1.7,需要准备好 PHP 的源代码以及所有相关的依赖包。以下是步骤: 步骤概览 在联网系统上下载 PHP 8.1.7 源代码和所有依赖包。 将这些文件传输到离线系统。 安装所需的依赖包。 编译并安装 PHP 8.1.7。 配置 PHP 和 Web 服务器。 …...
【iOS】push和pop、present和dismiss
目录 前言push和poppushpop present和dismisspresentdismiss实现模态对话框代码示例 区别总结 前言 push 和 present 是两种用于导航和切换视图控制器(ViewController)的常用方法,push与present都可以推出新的界面,present与dismi…...
基于51单片机的两路电压检测(ADC0808)
目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机,通过ADC0808获取两路电压,通过LCD1602显示 二、硬件资源 基于KEIL5编写C代码,PROTEUS8.15进行仿真,全部资源在页尾,提供…...
JavaScript ---案例(统计字符出现次数)
统计字符出现次数 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-w…...
切换淘宝最新npm镜像源
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:前端工程师 文章目录 一、🌎前言二、🌎切换淘宝最新npm镜像源2.…...
mysql时间戳格式化yyyy-mm-dd
格式化到 年月日 # 将时间换成列名就行;当前是秒级时间戳,如果是毫秒的 / 1000即可 # SELECT FROM_UNIXTIME(1602668106666.777888999 / 1000,%Y-%m-%d) AS a; # SELECT FROM_UNIXTIME(列名 / 1000,%Y-%m-%d) AS a; SELECT FROM_UNIXTIME(1602668106.666…...
MiniCPM-o-4.5-nvidia-FlagOS与Claude对比分析:在复杂推理任务上的差异化表现
MiniCPM-o-4.5-nvidia-FlagOS与Claude对比分析:在复杂推理任务上的差异化表现 最近在AI圈子里,关于不同模型在复杂推理任务上的表现,讨论得挺热闹的。特别是像MiniCPM-o-4.5-nvidia-FlagOS(后面简称MiniCPM)和Claude这…...
智能家居开发实战:用RxAndroidBle3实现多设备扫描与信号过滤(附完整Demo)
智能家居BLE开发进阶:RxAndroidBle3多设备扫描与动态过滤实战 在智能家居场景中,蓝牙低功耗(BLE)设备的高效扫描与筛选是构建稳定物联网系统的关键技术。本文将深入探讨如何利用RxAndroidBle3框架实现多设备并发扫描、动态信号过滤…...
Qwen3.5-35B-A3B-AWQ-4bit企业落地应用:教育题图分析、医疗影像初筛、工业图纸解读
Qwen3.5-35B-A3B-AWQ-4bit企业落地应用:教育题图分析、医疗影像初筛、工业图纸解读 1. 多模态AI在企业场景的价值 在当今企业运营中,视觉内容处理已成为关键环节。教育机构需要快速分析教材插图,医疗机构面临海量影像筛查压力,工…...
人脸识别OOD模型在医疗领域的应用探索
人脸识别OOD模型在医疗领域的应用探索 1. 引言 在医院里,每天都有成千上万的患者需要身份确认、用药核对和病情监测。传统的医疗身份验证方式如手环、身份证件等存在被冒用、丢失或信息错误的风险。而医护人员在繁忙的工作中,也可能因为疲劳或疏忽而错…...
NVIDIA Profile Inspector显卡性能调优实战指南:从问题诊断到专业配置
NVIDIA Profile Inspector显卡性能调优实战指南:从问题诊断到专业配置 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 一、显卡性能异常定位:精准找到游戏卡顿根源 游戏性能问题…...
3大核心方案破解戴森电池固件限制:让你的吸尘器重获新生
3大核心方案破解戴森电池固件限制:让你的吸尘器重获新生 【免费下载链接】FU-Dyson-BMS (Unofficial) Firmware Upgrade for Dyson V6/V7 Vacuum Battery Management System 项目地址: https://gitcode.com/gh_mirrors/fu/FU-Dyson-BMS 问题溯源:…...
Claude Code架构深度解析:从核心文件到Harness的确定性控制体系
前言 Claude Code凭借强大的代码理解、编辑与执行能力,成为AI研发工程师的高效工具,但多数使用者仅停留在功能调用层面,对其底层架构尤其是核心控制层Harness知之甚少。作为Claude Code架构师,本文将从项目架构视角,拆…...
实时手机检测-通用多场景落地:电商验货、海关安检、回收分拣案例解析
实时手机检测-通用多场景落地:电商验货、海关安检、回收分拣案例解析 1. 引言:手机检测,比你想象的更有用 你有没有想过,一个能快速、准确识别出图片或视频里手机的AI模型,到底能用在什么地方? 可能你会…...
效果惊艳:AI超清画质增强镜像3倍放大作品集展示
效果惊艳:AI超清画质增强镜像3倍放大作品集展示 1. 低清图像的困扰与AI解决方案 你是否遇到过这样的情况:翻出多年前的老照片想重温美好回忆,却发现画面模糊不清;从网上下载的图片用作素材时,放大后却满是马赛克&…...
Qwen3-ForcedAligner-0.6B实战:基于CNN的语音特征提取优化
Qwen3-ForcedAligner-0.6B实战:基于CNN的语音特征提取优化 如果你做过语音相关的项目,比如给视频加字幕、做语音分析,肯定遇到过这样的问题:模型识别出的文字,怎么才能和音频里的时间点对上号?这就是“强制…...
