WPF 中DataGrid控件显示和设置数据
一、基础知识
1、DataGrid控件:用来显示数据的控件,从对象集合中获取信息并在具有行和单元格的网格中显示信息。每行和单独的对象相对应,并且每列和对象的某个属性相对应。
2、在DataGrid 中同时包含“自动生成列”与“用户自定义列” 由属性AutoGenerateColumns控制。
<DataGrid Name="dataGrid1" AutoGenerateColumns="True" />//自动生成列(默认)
<DataGrid Name="dataGrid1" AutoGenerateColumns="False" />//用户自定义列
3、DataGrid常用属性
组件常用方法:
BeginEdit:使DataGrid进入编辑状态。
CancelEdit:取消DataGrid的编辑状态。
CollapseRowGroup:闭合DataGrid的行分组。
CommitEdit:确认DataGrid的编辑完成。
ExpandRowGroup:展开DataGrid的行分组。
GetGroupFromItem:从具体Item中得到分组。
ScrollIntoView:滚动DataGrid视图。
组件常用属性:
AlternatingRowBackground:获取或设置一个笔刷用来描绘DataGrid奇数行的背景。
AreRowDetailsFrozen:获取或设置一个值用来判断是否冻结每行内容的详细信息。
AreRowGroupHeadersFrozen:获取或设置一个值用来判断是否冻结分组行的头部。
AutoGenerateColumns:获取或设置一个值用来判断是否允许自动生成表列。
CanUserReorderColumns:获取或设置一个值用来判断是否允许用户重新排列表列的位置。
CanUserSortColumns:获取或设置一个值用来判断是否允许用户按列对表中内容进行排序。
CellStyle:获取或设置单元格的样式。
ColumnHeaderHeight:获取或设置列头的高度。
ColumnHeaderStyle:获取或设置列头的样式。
Columns:获取组件中包含所有列的集合。
ColumnWidth:获取或设置列宽。
CurrentColumn:获取或设置包含当前单元格的列。
CurrentItem:获取包含当前单元格且与行绑定的数据项。
DragIndicatorStyle:获取或设置当拖曳列头时的样式。
DropLocationIndicatorStyle:获取或设置呈现列头时的样式。
FrozenColumnCount:获取或设置冻结列的个数。
GridLinesVisibility:获取或设置网格线的显示形式。
HeadersVisibility:获取或设置行头及列头的显示形式。
HorizontalGridLinesBrush:获取或设置水平网格线的笔刷。
HorizontalScrollBarVisibility:获取或设置水平滚动条的显示样式。
IsReadOnly:获取或设置DataGrid是否为只读。
MaxColumnWidth:获取或设置DataGrid的最大列宽。
MinColumnWidth:获取或设置DataGrid的最小列宽。
RowBackground:获取或设置用于填充行背景的笔刷。
RowDetailsTemplate:获取或设置被用于显示行详细部分的内容的模板。
RowDetailsVisibilityMode:获取或设置一个值用以判定行详细部分是否显示。
RowGroupHeaderStyles:获取呈现行分组头部的样式。
RowHeaderStyle:获取或设置呈现行头的样式。
RowHeaderWidth:获取或设置行头的宽度。
RowHeight:获取或设置每行的高度。
RowStyle:获取或设置呈现行时的样式。
SelectedIndex:获取或设置当前选中部分的索引值。
SelectedItem:获取或设置与当前被选中行绑定的数据项。
SelectedItems:获取与当前被选中的各行绑定的数据项们的列表(List)。
SelectionMode:获取或设置DataGrid的选取模式。
VerticalGridLinesBrush:获取或设置垂直网格线的笔刷。
VerticalScrollBarVisibility:获取或设置垂直滚动条的显示样式。
组件常用事件:
BeginningEdit:发生于一个单元格或行进入编辑模式之前。
CellEditEnded:发生于一个单元格编辑已被确认或取消。
CellEditEnding:发生于一个单元格正在结束编辑时。
CurrentCellChanged:发生于一个单元格成为当前单元格时。
PreparingCellForEdit:发生于在DataGridTemplateColumn下的单元格进入编辑模式时。
SelectionChanged:发生于当SelectedItem或SelectedItems属性值改变时。
4、DataGrid控件的列类型
- DataGridTextColumn:标准数据
- DataGridCheckBoxColumn:显示复选框
- DataGridHperlinkColumn:显示可单击的连接。
- DataGridTemplateColumn:显示列值定义数据模板。
二、简单数据显示
显示目标
1、前台界面设计
<DataGrid AutoGenerateColumns="False" x:Name="DataGrid_Measure1" CanUserAddRows="False" Margin="0,19,43.8,0" Width="Auto" Grid.Row="1" Grid.RowSpan="2" Grid.Column="1" Grid.ColumnSpan="3" RenderTransformOrigin="0.5,0.5"><DataGrid.RenderTransform><TransformGroup><ScaleTransform/><SkewTransform AngleY="-0.002"/><RotateTransform/><TranslateTransform Y="-0.007"/></TransformGroup></DataGrid.RenderTransform><DataGrid.Columns><DataGridTextColumn Header="压力变送器1" Binding="{Binding Datagrid_Content}" Width="90" /><DataGridTextColumn Header=" 0" Binding="{Binding Datagrid_Pre1, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="50"/><DataGridTextColumn Header=" 1" Binding="{Binding Datagrid_Pre2, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="50"/><DataGridTextColumn Header=" 2" Binding="{Binding Datagrid_Pre3, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="50"/><DataGridTextColumn Header=" 3" Binding="{Binding Datagrid_Pre4, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="50"/><DataGridTextColumn Header=" 4" Binding="{Binding Datagrid_Pre5, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width ="50"/></DataGrid.Columns></DataGrid>
2、后台设置
(1)绑定数据源
public class Datagrid_data : INotifyPropertyChanged{private string _Datagrid_Pre1;private string _Datagrid_Pre2;private string _Datagrid_Pre3;private string _Datagrid_Pre4;private string _Datagrid_Pre5;private string _Datagrid_Pre6;private string _Datagrid_Pre7;private string _Datagrid_Pre8;private string _Datagrid_Pre9;private string _Datagrid_Pre10;public string Datagrid_Content { get; set; }public string Datagrid_Pre1 { set { this._Datagrid_Pre1 = value; OnPropertyChanged("Datagrid_Pre1"); } get { return _Datagrid_Pre1; } }public string Datagrid_Pre2 { set { this._Datagrid_Pre2 = value; OnPropertyChanged("Datagrid_Pre2"); } get { return _Datagrid_Pre2; } }public string Datagrid_Pre3 { set { this._Datagrid_Pre3 = value; OnPropertyChanged("Datagrid_Pre3"); } get { return _Datagrid_Pre3; } }public string Datagrid_Pre4 { set { this._Datagrid_Pre4 = value; OnPropertyChanged("Datagrid_Pre4"); } get { return _Datagrid_Pre4; } }public string Datagrid_Pre5 { set { this._Datagrid_Pre5 = value; OnPropertyChanged("Datagrid_Pre5"); } get { return _Datagrid_Pre5; } }public string Datagrid_Pre6 { set { this._Datagrid_Pre6 = value; OnPropertyChanged("Datagrid_Pre6"); } get { return _Datagrid_Pre6; } }public string Datagrid_Pre7 { set { this._Datagrid_Pre7 = value; OnPropertyChanged("Datagrid_Pre7"); } get { return _Datagrid_Pre7; } }public string Datagrid_Pre8 { set { this._Datagrid_Pre8 = value; OnPropertyChanged("Datagrid_Pre8"); } get { return _Datagrid_Pre8; } }public string Datagrid_Pre9 { set { this._Datagrid_Pre9 = value; OnPropertyChanged("Datagrid_Pre9"); } get { return _Datagrid_Pre9; } }public string Datagrid_Pre10 { set { this._Datagrid_Pre10 = value; OnPropertyChanged("Datagrid_Pre10"); } get { return _Datagrid_Pre10; } }public event PropertyChangedEventHandler PropertyChanged;void OnPropertyChanged(string name){if (PropertyChanged != null)this.PropertyChanged(this, new PropertyChangedEventArgs(name));}}
//给DataGrid绑定要显示的数据源Datagrid_data[] Datagrid_V1 = new Datagrid_data[8]//定义数据源{new Datagrid_data(){ Datagrid_Content = "温度点1压力值", Datagrid_Pre1 = "0",Datagrid_Pre2 = "0",Datagrid_Pre3 = "0",Datagrid_Pre4 = "0",Datagrid_Pre5 = "0" },new Datagrid_data(){ Datagrid_Content = "温度点1电阻值", Datagrid_Pre1 = "0",Datagrid_Pre2 = "0",Datagrid_Pre3 = "0",Datagrid_Pre4 = "0",Datagrid_Pre5 = "0" },new Datagrid_data(){ Datagrid_Content = "温度点2压力值", Datagrid_Pre1 = "0",Datagrid_Pre2 = "0",Datagrid_Pre3 = "0",Datagrid_Pre4 = "0",Datagrid_Pre5 = "0" },new Datagrid_data(){ Datagrid_Content = "温度点2电阻值", Datagrid_Pre1 = "0",Datagrid_Pre2 = "0",Datagrid_Pre3 = "0",Datagrid_Pre4 = "0",Datagrid_Pre5 = "0" },new Datagrid_data(){ Datagrid_Content = "温度点3压力值", Datagrid_Pre1 = "0",Datagrid_Pre2 = "0",Datagrid_Pre3 = "0",Datagrid_Pre4 = "0",Datagrid_Pre5 = "0" },new Datagrid_data(){ Datagrid_Content = "温度点3电阻值", Datagrid_Pre1 = "0",Datagrid_Pre2 = "0",Datagrid_Pre3 = "0",Datagrid_Pre4 = "0",Datagrid_Pre5 = "0" },new Datagrid_data(){ Datagrid_Content = "温度点4压力值", Datagrid_Pre1 = "0",Datagrid_Pre2 = "0",Datagrid_Pre3 = "0",Datagrid_Pre4 = "0",Datagrid_Pre5 = "0" },new Datagrid_data(){ Datagrid_Content = "温度点4电阻值", Datagrid_Pre1 = "0",Datagrid_Pre2 = "0",Datagrid_Pre3 = "0",Datagrid_Pre4 = "0",Datagrid_Pre5 = "0" },}; DataGrid_Measure1.ItemsSource = Datagrid_V1;//Datagrid_V的数据显示到datagrid里面去
(2)修改要显示的内容
//定义压力变送器三维数组
public float[, ,] Array_V = new float[16, 8, 5];//用于存放16个表格内的数据,(压力变送器的编号,行数,列数)//跟新完到第1个表格for (int i = 0; i < 8; i++)//按行列更新数值,i更新每一列,Datagrid_Pre x跟新每一行的数值{Datagrid_V1[i].Datagrid_Pre1 = Array_V[0,i, 0].ToString();Datagrid_V1[i].Datagrid_Pre2 = Array_V[0,i, 1].ToString();Datagrid_V1[i].Datagrid_Pre3 = Array_V[0,i, 2].ToString();Datagrid_V1[i].Datagrid_Pre4 = Array_V[0,i, 3].ToString();Datagrid_V1[i].Datagrid_Pre5 = Array_V[0,i, 4].ToString();}
三、复杂使用
参考:https://www.cnblogs.com/qq247039968/p/4062302.html
WPF 中DataGrid控件显示和设置数据相关推荐
- WPF中DataGrid控件
WPF中DataGrid控件的个别属性使用 //设置不可自动拉伸宽度dataGrid.CanUserResizeColumns = false;//第一列不可见dataGrid.HeadersVisi ...
- WPF中通过控件Margin属性设置控件位置
WPF中通过控件Margin属性设置控件位置 一.Margin属性简介 二.Margin在cs文件中定义 三.Margin设置控件位置 四.参考文档 一.Margin属性简介 在使用WPF进行页面设计 ...
- 有关WPF中DataGrid控件的基础应用总结
基础说明 DataGrid是WPF提供的基础控件,它可以非常轻松的呈现出一张表格,本文章会按照从易到难的顺序依次将DataGrid的使用方法进行解说,除了MSDN上给出的最基本的例子之外,给出了三个比 ...
- EasyUI中datagrid控件的使用 设置多行表头(两行或多行)
EasyUI中的datagrid控件十分强大,能生成各种复杂的报表,现在因为项目需要,需要生成一个表头两行的表,找了一些说明文档,以下用一个实例来说明一下: 第一种方法: 1 $('#divData' ...
- VB.net数据库编程中DataGrid控件的使用技巧
VB.net数据库编程中DataGrid控件的使用技巧 如何用同一个DataGrid显示不同的数据表:如何用DataGrid显示主表/明细表的内容:如何用DataGrid分页显示或编辑数据表的记录.这 ...
- 详解WPF 4 DataGrid控件的基本功能
分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow 详解WPF 4 D ...
- WPF之DataGrid控件使用
WPF之DataGrid控件使用 一.DataGrid简介 二.DataGrid数据源绑定 三.DataGrid单元格编辑触发事件 四.DataGrid增加删除行 五.DataGrid数据触发器 参考 ...
- WPF 自定义DataGrid控件样式
WPF 自定义DataGrid控件样式 样式一: 样式代码: <!--DataGrid样式--><Style TargetType="DataGrid">& ...
- WPF中一个控件绑定另一个控件的属性
原文:WPF中一个控件绑定另一个控件的属性 如同一个Grid中的一个按钮根据另一个按钮的显示与否作出不同的响应: 绑定的时候通过ElementName来指定控件 <Grid Margin=&qu ...
最新文章
- selenium java 验证码_如何使用Selenium WebDriver和Java从图像(验证码)中读取文本
- c++语句和流程控制
- php查看文件属性,文件目录属性及权限
- java远程执行功能_Java远程连接Linux服务器并执行命令及上传文件功能
- 算法不会,尚能饭否之排序——折半插入排序(Binary Insert Sort)
- python访问注册表_Python 操作注册表
- H3C DHCP中继实验
- 人人开源项目搭建到服务器,人人开源框架的部署
- Redis过期策略及内存淘汰机制
- Windows部署WSUS补丁服务器
- 【Python数据分析-8】:Numpy常用操作-arange函数、linspace函数与运算
- kasp技术原理_KASP 2x PCR Mix 说明书
- windows筛选键
- 请问怎么用python画一个轮廓图,,例如中国地图这种,注意是轮廓图,求大佬指点
- 2021计算机excel,excel2021版本
- 使用jasypt加密解密
- EasyRecovery五个步骤搞定数据恢复
- oracle daul是什么意思,Oracle中的dual表到底是干什么的
- 逆---LanSet.exe
- 新代plc编程代码及解释_新代系统 PLC 与CNC 接口列表说明
热门文章
- 查找MySQL查询语句被阻塞阻塞原因
- BDD - SpecFlow BDD 测试实践 SpecFlow 模板
- 不花钱,用一个小时搭建自己的博客网站
- ajax访问不到外部的变量,解决ajax方法内部不能给方法外部变量赋值的问题
- php web项目目录结构图,目录结构
- Redis的那些最常见面试问题
- python 数组排序sort_Python之排序函数sort() 和 sorted()
- 锂电池SOC估计Simulink模型/卡尔曼滤波估算SOC
- 在openlayer中对瓦片地图进行平移
- 把矩阵化成行最简型(伪)