WPF中DataGrid控件绑定数据源

2023-09-18 18:23:33

步骤

  1. 创建数据源:首先,我们需要创建一个数据源,可以是一个集合(如List、ObservableCollection等),也可以是一个DataTable对象。数据源中的每个元素代表一行数据。

  2. 设置DataGrid的ItemsSource属性:在XAML中,我们可以通过设置DataGrid的ItemsSource属性来将数据源与DataGrid进行绑定,例如:

<DataGrid ItemsSource="{Binding MyData}" />

 其中,MyData是我们创建的数据源的属性名。

3、定义列:DataGrid中的每一列都需要定义,以便显示数据。可以使用DataGridTextColumn、DataGridComboBoxColumn等列类型,根据需要选择合适的列类型。例如,我们可以定义一个文本列来显示数据源中的某个属性:

<DataGridTextColumn Header="Name" Binding="{Binding Name}" />

其中,Name是数据源中的一个属性名。 

4、设置AutoGenerateColumns属性:如果希望DataGrid自动根据数据源的属性生成列,可以将AutoGenerateColumns属性设置为True。这样,DataGrid会自动创建列来显示数据源中的属性。

<DataGrid AutoGenerateColumns="True" />

5、实现数据编辑:DataGrid控件可以实现数据的编辑功能。可以设置DataGrid的CanUserAddRows、CanUserDeleteRows和CanUserEditRows属性来控制用户是否可以添加、删除和编辑数据。

6、数据绑定的代码实现:除了在XAML中进行数据绑定,我们还可以通过代码来实现数据绑定。可以使用DataGrid的SetBinding方法来将数据源与DataGrid进行绑定,例如:

dataGrid.SetBinding(DataGrid.ItemsSourceProperty, new Binding("MyData"));

项目实现

 <DataGrid IsEnabled="False"   ItemsSource="{Binding OpInqueryLine}" x:Name="OperatorWork" CanUserAddRows="False" HorizontalAlignment="Left" Height="312" Margin="47,106,0,0" VerticalAlignment="Top" Width="629">
                <DataGrid.Columns>
                    <DataGridTextColumn Binding="{Binding managerID}" Header="卡号" Width="160"/>
                    <DataGridTextColumn Binding="{Binding cardName}" Header="用户名" Width="160"/>
                    <DataGridTextColumn Binding="{Binding loginTime}" Header="上班时间" Width="160"/>
                    <DataGridTextColumn Binding="{Binding logoutTime}" Header="下班时间" Width="160"/>
                </DataGrid.Columns>
            </DataGrid>

 上图中是绑定数据库中某一个表的列名。

如果有分页的话绑定,分页中的数据源 

总结

综上所述,WPF中的DataGrid控件是一个强大而灵活的工具,用于展示和编辑数据。通过学习如何绑定数据源、定义列、编辑和排序数据、样式和模板的定制,以及如何处理相关的事件,开发人员可以更好地利用DataGrid控件来满足不同的业务需求。希望本文对你在WPF中使用DataGrid控件进行数据绑定有所帮助。

更多推荐

【华为OD机试python】模拟消息队列【2023 B卷|100分】

【华为OD机试】-真题!!点这里!!【华为OD机试】真题考点分类!!点这里!!题目描述让我们来模拟一个消息队列的运作,有一个发布者和若干消费者,发布者会在给定的时刻向消息队列发送消息若此时消息队列有消费者订阅,这个消息会被发送到订阅的消费者中优先级最高(输入中消费者按优先级升序排列)的一个。若此时没有订阅的消费者,该消

【数据链路层】网络基础 -- MAC帧协议与ARP协议

数据链路层认识以太网以太网帧格式(MAC帧)认识MAC地址对比理解MAC地址和IP地址认识MTUMTU对IP协议的影响MTU对UDP协议的影响MTU对于TCP协议的影响再谈局域网转发原理(基于协议)ARP协议ARP协议的作用ARP协议的工作流程ARP数据报的格式数据链路层用于两个设备(同一种数据链路节点)之间进行传递在

抖音短视频矩阵系统搭建

企业在进行短视频矩阵运营时,搭建一个矩阵号是非常必要的。矩阵号可以绑定多个不同平台的账号,批量制作和定时发布短视频,提高企业的曝光量和粉丝互动。但是,如何搭建一个有效的短视频矩阵号呢?以下是几个关键步骤。一、准备做矩阵的账号企业可以注册新账号,也可以使用现有的账号。在选择账号时,需要根据矩阵号的不同分工来做出选择。例如

Android Camera2获取摄像头的视场角(FOV)信息

一、概念FOV(FieldofView)是一个用于描述视野范围的术语。它通常用于计算设备(如摄像机、虚拟现实头显或眼睛)所能捕捉到的可见区域。水平FOV(HorizontalFOV):描述视野在水平方向上的范围,通常以度(°)或弧度(rad)为单位。垂直FOV(VerticalFOV):描述视野在垂直方向上的范围,同样

【Verilog教程】3.2 Verilog 时延

关键词:时延,惯性时延连续赋值延时语句中的延时,用于控制任意操作数发生变化到语句左端赋予新值之间的时间延时。时延一般是不可综合的。寄存器的时延也是可以控制的,这部分在时序控制里加以说明。连续赋值时延一般可分为普通赋值时延、隐式时延、声明时延。下面3个例子实现的功能是等效的,分别对应3种不同连续赋值时延的写法。//普通时

服务器资源监控工具Nmon工具搭建教程

nmon是IBM公司推出的一款免费性能监控工具,可以时时监控服务器资源,还可以定时监控服务器资源,并生成数据文件,记录服务器的资源消耗情况操作步骤:下载地址:https://nmon.sourceforge.net/pmwiki.php?n=Site.Download1,通过ssh工具连接服务器2,进入usr目录下创建

IP模块组装网络包及转发网络包链路

目录引言网络包网络包的组成​编辑网络包的转发转发设备大致流程​编辑ip模块发送网络包添加网络包的头部控制信息ip头部中添加发送方ip地址路由表查找规则​编辑添加协议号添加mac头部​编辑arp协议转换ip地址为mac地址​编辑arp缓存arp缓存失效​编辑ip模块对应的发送接受发送接受职责界定引言之前协议栈系列的文章讲

《Linux高性能服务器编程》--TCP/IP协议族

目录1--TCP/IP协议族2--数据链路层3--网络层4--传输层5--应用层6--封装和分用7--ARP协议的工作原理1--TCP/IP协议族TCP/IP协议族是一个四层协议系统,自底而上分别是数据链路层、网络层、传输层和应用层;2--数据链路层数据链路层两个常用协议:ARP协议(地址解析协议)和RARP协议(逆地

分析数组,结构体在反汇编中存储

本文会在IDA中分析数组,结构体在内存中的存储目录IDA分析数组存储IDA分析结构体存储传递参数的方式IDA分析数组存储测试代码如下:/************************************************************************//*@Author:玄都大法师/*@D

Gateway网关

网关GateWay官方文档:https://docs.spring.io/spring-cloud-gateway/docs/3.1.2/reference/html/#gateway-how-it-works核心概念路由:网关的核心数据结构,定义了网关如何处理请求.一条路由信息包含路由的唯一标识ID,目的地URI,一

驱动开发,基于gpio子系统编写LED灯的驱动,亮灭控制

1.gpio子系统介绍一个芯片厂商生产出芯片后会给linux提供一个当前芯片中gpio外设的驱动,我们当前只需要调用对应的厂商驱动即可完成硬件的控制。而linux内核源码中的gpio厂商驱动有很多,这里linux内核对厂商驱动做了一些封装,提供了一系列的API,我们在自己编写的设备驱动中只需要调用这些API即可访问对应

热文推荐