WPF DataGrid 列表中,DataGrid.Columns 列根据不同的值显示不同内容

需求:在WPF DataGrid 控件中,有以下列,绑定了一个LogType,值分别是0,1,2,根据不同的值,显示不同的内容以及背景

<DataGrid ItemsSource="{Binding EventLog}"><DataGrid.Columns><DataGridTextColumn Width="150" Binding="{Binding LogType}" Header="级别" >
</DataGrid.Columns>
</DataGrid>

最终效果图如下:

在这里插入图片描述

一.实现代码

1.需要使用 DataGridTemplateColumn 来为 LogType 列自定义显示模板

<DataGrid ItemsSource="{Binding EventLog}">
<DataGrid.Columns><DataGridTemplateColumn Header="级别" Width="150"><DataGridTemplateColumn.CellTemplate><DataTemplate><BorderBorderThickness="1"Background="{Binding LogType, Converter={StaticResource LogTypeToBackgroundConverter}}"CornerRadius="5"Padding="5"HorizontalAlignment="Center"VerticalAlignment="Center"><TextBlockText="{Binding LogType, Converter={StaticResource LogTypeToTextConverter}}"Foreground="White"HorizontalAlignment="Center"VerticalAlignment="Center"FontWeight="Bold"/></Border></DataTemplate></DataGridTemplateColumn.CellTemplate></DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>

2.接下来,我们需要定义两个转换器(LogTypeToBackgroundConverterLogTypeToTextConverter),用于根据 LogType 的值来设置背景颜色和显示文本。

2.1 LogTypeToBackgroundConverter 转换器实现
public class LogTypeToBackgroundConverter : IValueConverter
{public object Convert(object value, Type targetType, object parameter, CultureInfo culture){if (value is int logType){switch (logType){case 0:return "#00ee84";case 1:return "#f9c715";case 2:return "#df3c0b";default:return "#00d5e0";}}return "#00d5e0";}public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture){return null;}
}
2.2 LogTypeToTextConverter 转换器实现
public class LogTypeToTextConverter : IValueConverter
{public object Convert(object value, Type targetType, object parameter, CultureInfo culture){if (value is int logType){switch (logType){case 0:return "提示";case 1:return "警告";case 2:return "错误";default:return "未知";}}return "未知";}public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture){return null;}
}

3.将转换器,添加到资源字典中

在你的 XAML 用户控件中,需要将转换器添加到资源字典中,以便在数据模板中使用。添加代码如下:

在这里插入图片描述

这样就完成了 LogType 列的自定义显示。根据 LogType 的值,可以看到不同的背景颜色和文本显示在 DataGrid 中。如果能帮到你们,记得点赞收藏呐!

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

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

相关文章

P1190 [NOIP2010 普及组] 接水问题

题目描述 学校里有一个水房&#xff0c;水房里一共装有 m 个龙头可供同学们打开水&#xff0c;每个龙头每秒钟的供水量相等&#xff0c;均为 11。 现在有 n 名同学准备接水&#xff0c;他们的初始接水顺序已经确定。将这些同学按接水顺序从 1 到 n 编号&#xff0c;i 号同学的…

Android 后台服务之Persistent 属性

在 Android 开发中,有时我们需要后台服务持续运行,以保持应用的某些功能。例如,音乐播放器需要在后台播放音乐,或者健康应用需要持续跟踪用户的运动数据。后台服务是 Android 中的一种组件,它不与用户界面交互,能够在后台执行长时间运行的任务。由于 Android 系统的资源管…

Vue路由二(嵌套多级路由、路由query传参、路由命名、路由params传参、props配置、<router-link>的replace属性)

目录 1. 嵌套(多级)路由2. 路由query传参3. 路由命名4. 路由params传参5. props配置6. <router-link>的replace属性 1. 嵌套(多级)路由 pages/Car.vue <template><ul><li>car1</li><li>car2</li><li>car3</li></ul…

postgresql-patroni高可用安装部署

简介 patronietcd,算是目前比较主流的PG高可用搭配了。 patroni都出4.0版本了,一直没时间&#xff0c;断断续续写了好久&#xff0c;最近有人问到&#xff0c;那就当作一个笔记发表吧&#xff0c;自行搭建一个测试库做测试吧。来来回回改了好几遍。文中可能不妨地方没有同步修…

Android 源码多个Launcher设置默认Launcher

目录 第一部分、android10之前 一.多个launcher 启动设置默认launcher的核心类 二 在自定义服务里面设置默认Launcher 第二部分、android10之后 一、Launcher应用内置并设置为默认Launcher 1.通过ResolverActivity.java设置为默认Launcher 改法一&#xff1a; 改法二&am…

Linux使用Clash,clash-for-linux

文件下载 clash-for-linuxhttps://link.zhihu.com/?targethttps%3A//zywang.lanzn.com/ijE2a1m7h6mb&#xff08;百度和阿里云盘都不支持这个文件分享&#xff09;。 使用须知 - 此项目不提供任何订阅信息&#xff0c;请自行准备Clash订阅地址。 - 运行前请手动更改.env文件…

掌握ChatGPT:高效利用AI助手

2023 年 3 月 15 日&#xff0c;ChatGPT-4 的诞生标志着人类进入了一个全新的 人机协作时代。这个时代就像一个混沌初开的新世界&#xff0c;而 ChatGPT 则是这个新世界里诞生的一个新物种。 这个新物种的心智如同一个四五岁的小孩&#xff0c;在与它频繁互动中&#xff0c;人…

BFS 解决边权为1的最短路问题

文章目录 边权为1的最短路问题1926. 迷宫中离入口最近的出口题目解析算法原理代码实现 433. 最小基因变化题目解析算法原理代码实现 127. 单词接龙题目解析算法原理代码实现 675. 为高尔夫比赛砍树题目解析算法原理代码实现 边权为1的最短路问题 最短路问题&#xff1a; 比如…

Effective C++笔记之二十三:非void函数不写return

一.main函数 Qt Creator查看汇编的步骤如下 上图是g编译器下的汇编 eax就是main()函数的返回值 如果删掉return 0&#xff1b; 可以发现编译器还是把eax的值设为了0&#xff0c;由此可见&#xff0c;即使在main函数中不写return 0&#xff0c;编译器还是会默认添加个return 0。…

828华为云征文|华为Flexus云服务器搭建OnlyOffice私有化在线办公套件

一、引言 在当今数字化办公的时代&#xff0c;在线办公套件的需求日益增长。华为Flexus云服务器凭借其强大的性能和稳定性&#xff0c;为搭建OnlyOffice私有化在线办公套件提供了理想的平台。在2024年9月14日这个充满探索精神的日子里&#xff0c;我们开启利用华为Flexus云服务…

R语言统计分析——散点图2(散点图矩阵、高密度散点图)

参考资料&#xff1a;R语言实战【第2版】 1、散点图矩阵 pairs()函数可以创建基础的散点图矩阵。下面代码用于绘制一个散点图矩阵&#xff0c;包含mtcars数据集中的mpg、disp、drat和wt四个变量&#xff1a; pairs(~mpgdispdratwt,datamtcars,main"Basic Scatter Plot M…

Android Room 数据库自动升级与迁移策略

前序 在 Android 应用开发中&#xff0c;Room 是 Google 提供的一个轻量级数据库框架&#xff0c;用于简化与 SQLite 的交互。在应用的迭代过程中&#xff0c;数据库的结构不可避免地会发生变化&#xff0c;因此&#xff0c;我们需要为数据库升级、降级以及数据迁移制定一套合…

太阳能光伏板航拍红外图像缺陷分类数据集

太阳能光伏板航拍红外图像缺陷分类数据集。 数据集共包含11种不同的缺陷分类&#xff0c; 总共20000张图片&#xff0c; 可用来做基于深度学习的缺陷分类 近红外&#xff0c;黑白图像&#xff0c;图示经过可视化处理。 数据集名称 太阳能光伏板缺陷分类数据集&#xff08;Sola…

三相可控整流电路 (三相半波,三相桥式)

目录 1. 三相半波整流电路 2. 三相桥式全控整流电路 三相可控整流电路利用三相交流电源&#xff0c;通过可控硅&#xff08;晶闸管&#xff09;将交流电整流为直流电。主要有两种常见类型&#xff1a;三相半波整流电路和三相桥式全控整流电路。 1. 三相半波整流电路 三相半波…

《沈阳体育学院学报》

《沈阳体育学院学报》创刊于1982年&#xff0c;是由沈阳体育学院主办&#xff0c;面向国内外公开发行的体育类学术期刊&#xff1b;国际标准刊号为ISSN 1004-0560&#xff0c;国内刊号为CN 21-1081/G8&#xff1b;双月刊&#xff0c;单月中旬出版。 《沈阳体育学院学报》是中文…

java中的集合之List

Java 中的 List 是一个接口&#xff0c;定义了一组有序的元素集合&#xff0c;允许重复元素。List 接口有多个实现形式&#xff0c;主要包括&#xff1a; ArrayList: 基于动态数组实现&#xff0c;支持快速随机访问&#xff0c;适用于需要频繁读取数据的场景。LinkedList: 基于…

宝塔部署python项目

宝塔部署-python项目文章浏览阅读559次&#xff0c;点赞11次&#xff0c;收藏9次。在添加项目后&#xff0c;选择项目所在的路径&#xff0c;然后命令行启动主py文件。具体先看项目日志&#xff0c;根据日志在环境管理处下载包。首先下载项目需要的python版本。_宝塔部署python…

LabVIEW提高开发效率技巧----VI服务器和动态调用

VI服务器&#xff08;VI Server&#xff09;和动态调用是LabVIEW中的两个重要功能&#xff0c;可以有效提升程序的灵活性、模块化和可扩展性。通过这两者的结合&#xff0c;开发者可以在运行时动态加载和调用VI&#xff08;虚拟仪器&#xff09;&#xff0c;实现更为复杂的应用…

C++和OpenGL实现3D游戏编程【目录】

欢迎来到zhooyu的专栏。 个人主页&#xff1a;【zhooyu】 文章专栏&#xff1a;【OpenGL实现3D游戏编程】 贝塞尔曲面演示&#xff1a; 贝塞尔曲面演示zhooyu 本专栏内容&#xff1a; 我们从游戏的角度出发&#xff0c;用C去了解一下游戏中的功能都是怎么实现的。这一切还是要…

开放食物营养库python SDK套件:openfoodfacts-python

官网源码&#xff1a;GitHub - openfoodfacts/openfoodfacts-python: &#x1f40d; Python package for Open Food Facts 官网&#xff1a;https://world.openfoodfacts.org/ 这是Open Food Facts项目的官方Python SDK。它为Open Food Facts API提供了一个简单的界面&#x…