WPF —— DataGrid数据网格

1 :DataGrid简介

DataGrid 是数据网格 : 可以显示网格数据的控件,通过自定义列模版 来去实现各种网格效果 , 可以使用以下几中标签显示不同数据

2 :DataGrid常用的组件

显示文本: DataGridTextColumn
显示复选框: DataGridCheckoBoxColumn
下拉框: DataGridComboBoxColumn
超链接: DataGridHyperlinkColumn 等

属性

ItemsSource:绑定数据
itemTemplate:绑定模板的属性"{StaticResource d1}"

AutoGenerateColumns 是否自动生成列 设置为false不会自动生成列

AutoGenerateColumns 是否删除行

CanUserSortColums 是否允许列进行排序

GridLinesVisibility设置网格线

3 关于DataGrid的实例

设置单元格的样式

 <DataGrid FontSize="30" Name="d1" ItemsSource="{Binding}" AutoGenerateColumns="False" CanUserAddRows="False" CanUserSortColumns="False"GridLinesVisibility="All"><!--设置单元格的样式--><DataGrid.CellStyle><!--TargetType 给单元格设置样式--><Style TargetType="DataGridCell"><Setter Property="HorizontalAlignment"Value="Center"></Setter></Style></DataGrid.CellStyle> 

设置列 设置表头 文本列,显示的数据可以通过bind进行绑定

<DataGrid.Columns><DataGridTextColumn Header="姓名" Width="200" Binding="{Binding Name}"><DataGridTextColumn.ElementStyle><Style TargetType="TextBlock"><Setter Property="HorizontalAlignment"Value="Center" /><Setter Property="HorizontalAlignment"Value="Center" /></Style></DataGridTextColumn.ElementStyle></DataGridTextColumn><DataGridTextColumn Header="年龄" Width="200"Binding="{Binding Age}"><DataGridTextColumn.ElementStyle><Style TargetType="TextBlock"><Setter Property="HorizontalAlignment"Value="Center" /><Setter Property="HorizontalAlignment"Value="Center" /></Style></DataGridTextColumn.ElementStyle></DataGridTextColumn>

复选框列

<DataGridCheckBoxColumn Header="婚否"Binding="{Binding Mary}"><DataGridCheckBoxColumn.ElementStyle><Style TargetType="TextBlock"><Setter Property="HorizontalAlignment"Value="Center" /><Setter Property="HorizontalAlignment"Value="Center" /></Style></DataGridCheckBoxColumn.ElementStyle>
</DataGridCheckBoxColumn>

下拉框列 设置默认值的时候通过
                标签添加绑定SelectedValueBinding=" {Binding ClassId}在后台添加this.c1.SelectedValuePath = "ClassId";

<DataGridComboBoxColumn Header="班级" x:Name="c1" SelectedValueBinding="{Binding ClassId}"></DataGridComboBoxColumn>

自定义列

    <DataGridTemplateColumn><!--自定义列的标题--><DataGridTemplateColumn.Header><TextBlock>编号</TextBlock></DataGridTemplateColumn.Header><!--自定义单元格的模版--><DataGridTemplateColumn.CellTemplate><DataTemplate><TextBlock Text="{Binding ClassID}"></TextBlock></DataTemplate></DataGridTemplateColumn.CellTemplate></DataGridTemplateColumn></DataGrid.Columns>

设置模型类 

List<Student> list1 = new List<Student>();
list1.Add(new Student()
{Name = "黑大帅",Age = 17,Marry = true,ClassId = "1000"
});list1.Add(new Student()
{Name = "赵丽颖",Age = 17,Marry = true,ClassId = "1001"
});list1.Add(new Student()
{Name = "普京",Age = 17,Marry = true,ClassId = "1002"
});// 整理第二个数据源
List<BanJi> list2 = new List<BanJi>();
list2.Add(new BanJi() { ClassId = "1000", ClassName = "上位机" });
list2.Add(new BanJi() { ClassId = "1001", ClassName = "C#软件开发" });// 网格的整体数据源
this.d1.ItemsSource = list1;// 针对班级处理数据源 设置班级下拉框数据源为list2
this.c1.ItemsSource = list2;
this.c1.DisplayMemberPath = "ClassName"; // 展示班级名
this.c1.SelectedValuePath = "ClassId"; // 选中上位机选项时候,获取select属性时候值是1000SelectedValueBinding="{Binding ClassId}"在后台 添加  this.c1.SelectedValuePath = "ClassId";this.d1.ItemsSource = list1;
public class Student
{public string Name { get; set; }    //学生姓名public int Age { get; set; }     // 年龄public bool Marry {  get; set; } // 婚否public string ClassId {  get; set; } // 班级编号}
public class BanJi
{public string ClassId { get; set; } // 班级编号public string ClassName {  get; set; } // 班级名称
}

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

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

相关文章

【计算机考研】杭电 vs 浙工大 怎么选?

想求稳上岸的话&#xff0c;其他几所学校也可以考虑&#xff0c;以留在本地工作的角度考虑&#xff0c;这几所学校都能满足你的需求。 如果之后想谋求一份好工作&#xff0c;肯定优先杭电是比较稳的&#xff0c;当然复习的时候也得加把劲。 这个也可以酌情考虑&#xff0c;报…

C# 设置AutoScroll为true没效果的原因分析和解决办法

C#中添加tabControl 分页&#xff0c;将autoscroll设置为true发现缩小窗口没有滚动条效果。该问题出现后&#xff0c;检索发现也有很多人询问了该问题&#xff0c;但是都没有给出解决方案。 原因是内部button的属性Anchor设置为top、left、right、bottom导致的缩小界面窗口也没…

【逆向】常用指令操作adb和logcat

快将尘埃掸落 别将你眼眸弄脏 或许吧 谈笑中你早已淡忘 而我在颠沛中 已饱经一脸沧桑 思念需要时间 慢慢调养 &#x1f3b5; 张小九《余香》 在安卓开发和调试过程中&#xff0c;adb&#xff08;Android Debug Bridge&#xff09;是一个无可替代的工具。它…

为什么Hashtable不允许插入nuIl键和null值?

1、典型回答 浅层次的来回答这个问题的答案是&#xff0c;JDK 源码不支持 Hashtable 插入 value 值为 null&#xff0c;如以下 JDK 源码所示&#xff1a; 也就是 JDK 源码规定了&#xff0c;如果你给 Hashtable 插入 value 值为 null 就会抛出空指针异常。 并且看上面的 JDK …

node.js常用的命令

node.js常用的命令包括&#xff1a; 安装包。使用npm install <包名>版本号安装指定版本的包&#xff0c;或者使用npm install <包名>安装包到当前目录。 卸载包。使用npm uninstall <包名>卸载包。 全局安装包。使用npm install <包名> -g全局安装包…

MySQL面试高频简答题及答案解析

1. 请解释什么是关系型数据库?并列举关系型数据库的主要特点。 关系型数据库是采用关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解。关系型数据库的主要特点包括易于编程、支持复杂查询以及支持事务处理等。 2. 简述MySQL的存储引擎及其作用。 MyS…

【Ubuntu】FTP站点搭建

配置顺序 前提条件&#xff1a;确保软件仓库可以正常使用&#xff0c;确保已正常配置IP地址 1.安装FTP服务 2.编辑FTP配置文件 3.设置开机自启 4.创建用户 5.配置用户限制名单 6.重启服务 7.查看运行状态 8.测试在同一局域网下的Windows查看文件 1.安装FTP服务 sudo apt insta…

网站建设中的HTTP 请求方法

快速入门 — Flask 0.10.1 文档 (jinkan.org) HTTP 请求方法 | 菜鸟教程 (runoob.com) HTTP &#xff08;与 Web 应用会话的协议&#xff09;有许多不同的访问 URL 方法。默认情况下&#xff0c;路由只回应 GET 请求&#xff0c;但是通过 route() 装饰器传递 methods 参数可以…

【STM32嵌入式系统设计与开发】——8usart(串口通讯实验)

这里写目录标题 一、任务描述二、任务实施1、ActiveBeep工程文件夹创建2、函数编辑&#xff08;1&#xff09;主函数编辑&#xff08;2&#xff09;USART1初始化函数(usart1_init())&#xff08;3&#xff09;USART数据发送函数&#xff08; USART1_Send_Data&#xff08;&…

Tempo Talents | 创新专业建设方案,赋能高校4+N大数据学科人才培养

数字经济成为国家战略&#xff0c;是新一轮的经济发展引擎&#xff0c;数字人才、复合型人才成为发展的关键和核心要素。各级政府、区域开始以区域产业为导向&#xff0c;培育、聚集产业所需的数智化人才。 高校作为人才培养的重要基地&#xff0c;也发挥着不可或缺的作用。他…

Linux系统之安装java开发环境

1 java简介 Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称。由 James Gosling和同事们共同研发&#xff0c;并在 1995 年正式推出&#xff0c;后来 Sun 公司被 Oracle &#xff08;甲骨文&#xff09;公司收购&#xff…

Linux进程控制(一)

一、fork函数 在linux中&#xff0c;父进程通过fork函数创建子进程&#xff0c;子进程返回0&#xff0c;父进程返回子进程的pid&#xff0c;出现错误返回-1。 当运行fork函数时&#xff0c;OS会为子进程创建task_struct、mm_struct&#xff08;进程地址空间&#xff09;、页表&…

C语言实现高精度计时和高精度延时微秒级别

C语言实现高精度计时和高精度延时微秒级别 目的说明环境说明一、高精度延时(微秒级别)二、测试例程三、测试结果 目的说明 在Windows下C语言实现高精度计时功能和高精度延时微秒级别环境说明 Dev-C V5.11一、高精度延时(微秒级别) void vDelayUS(u32 usDelay) {LARGE_INTEGER…

C语言例:表达式10<<3+1的值

10的二进制 00001010 10<<3 01010000 十制左移m位&#xff0c;乘以。 0101 0000 十进制80 10<<31 81

Day75:WEB攻防-验证码安全篇接口滥用识别插件复用绕过宏命令填入滑块类

目录 图片验证码-识别插件-登录爆破&接口枚举 登录爆破 接口枚举 图片验证码-重复使用-某APP短信接口滥用 滑块验证码-宏命令-某Token&Sign&滑块案例 知识点&#xff1a; 1、验证码简单机制-验证码过于简单可爆破 2、验证码重复使用-验证码验证机制可绕过 3、…

突破编程_C++_C++11新特性(完美转发 forward)

1 完美转发的概念 C11 中引入的完美转发&#xff08;Perfect Forwarding&#xff09;是一种强大的编程技巧&#xff0c;它允许在编写泛型函数时保留参数的类型和值类别&#xff08;即左值或右值&#xff09;&#xff0c;从而实现更为高效且准确地传递参数。这种技巧在编写包装…

在springboot中利用Redis实现延迟队列

文章目录 前言一、基本思路二、springboot实现案例三、测试总结 前言 在开发过程中&#xff0c;有很多场景都需要用到延迟队列来解决。目前支持延迟队列的中间件也不少&#xff0c;特别是基于JMS模式下的消息中间件基本上都支持延迟队列。但是有时我们项目规模可能比较小&…

浅谈Spring框架

一、什么是Spring&#xff1f; Spring是一个开源框架&#xff0c;可以降低开发复杂度&#xff0c;提高开发效率&#xff0c;轻量级低耦合的框架。由于Spring的分层架构&#xff0c;可以自己选择整合其他组件&#xff0c;灵活性高 二、什么是IOC&#xff1f; IOC 叫做控制反转&…

如何在 Java 中造成内存泄漏?

如何在 Java 中造成内存泄漏&#xff1f; 应用程序创建一个长时间运行的线程&#xff08;或使用线程池来更快地泄漏&#xff09;。线程通过&#xff08;可选自定义&#xff09;加载类ClassLoader。该类分配一大块内存&#xff08;例如new byte[1000000]&#xff09;&#xff0…

Python PEP 8 代码风格指南

Python PEP 8 代码风格指南 0. 引言1. 空白字符2. 命名3. 表达式和语句4. 导入5. Pylint工具6. 要点总结 0. 引言 Python增强提案#8,也称作 PEP 8,是关于如何格式化Python代码的风格指南。 你可以按自己的方式编写Python代码,只要符合有效的语法规则。 然而,使用一致的风格可…