一、基础知识

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控件显示和设置数据相关推荐

  1. WPF中DataGrid控件

    WPF中DataGrid控件的个别属性使用 //设置不可自动拉伸宽度dataGrid.CanUserResizeColumns = false;//第一列不可见dataGrid.HeadersVisi ...

  2. WPF中通过控件Margin属性设置控件位置

    WPF中通过控件Margin属性设置控件位置 一.Margin属性简介 二.Margin在cs文件中定义 三.Margin设置控件位置 四.参考文档 一.Margin属性简介 在使用WPF进行页面设计 ...

  3. 有关WPF中DataGrid控件的基础应用总结

    基础说明 DataGrid是WPF提供的基础控件,它可以非常轻松的呈现出一张表格,本文章会按照从易到难的顺序依次将DataGrid的使用方法进行解说,除了MSDN上给出的最基本的例子之外,给出了三个比 ...

  4. EasyUI中datagrid控件的使用 设置多行表头(两行或多行)

    EasyUI中的datagrid控件十分强大,能生成各种复杂的报表,现在因为项目需要,需要生成一个表头两行的表,找了一些说明文档,以下用一个实例来说明一下: 第一种方法: 1 $('#divData' ...

  5. VB.net数据库编程中DataGrid控件的使用技巧

    VB.net数据库编程中DataGrid控件的使用技巧 如何用同一个DataGrid显示不同的数据表:如何用DataGrid显示主表/明细表的内容:如何用DataGrid分页显示或编辑数据表的记录.这 ...

  6. 详解WPF 4 DataGrid控件的基本功能

    分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow 详解WPF 4 D ...

  7. WPF之DataGrid控件使用

    WPF之DataGrid控件使用 一.DataGrid简介 二.DataGrid数据源绑定 三.DataGrid单元格编辑触发事件 四.DataGrid增加删除行 五.DataGrid数据触发器 参考 ...

  8. WPF 自定义DataGrid控件样式

    WPF 自定义DataGrid控件样式 样式一: 样式代码: <!--DataGrid样式--><Style TargetType="DataGrid">& ...

  9. WPF中一个控件绑定另一个控件的属性

    原文:WPF中一个控件绑定另一个控件的属性 如同一个Grid中的一个按钮根据另一个按钮的显示与否作出不同的响应: 绑定的时候通过ElementName来指定控件 <Grid Margin=&qu ...

最新文章

  1. selenium java 验证码_如何使用Selenium WebDriver和Java从图像(验证码)中读取文本
  2. c++语句和流程控制
  3. php查看文件属性,文件目录属性及权限
  4. java远程执行功能_Java远程连接Linux服务器并执行命令及上传文件功能
  5. 算法不会,尚能饭否之排序——折半插入排序(Binary Insert Sort)
  6. python访问注册表_Python 操作注册表
  7. H3C DHCP中继实验
  8. 人人开源项目搭建到服务器,人人开源框架的部署
  9. Redis过期策略及内存淘汰机制
  10. Windows部署WSUS补丁服务器
  11. 【Python数据分析-8】:Numpy常用操作-arange函数、linspace函数与运算
  12. kasp技术原理_KASP 2x PCR Mix 说明书
  13. windows筛选键
  14. 请问怎么用python画一个轮廓图,,例如中国地图这种,注意是轮廓图,求大佬指点
  15. 2021计算机excel,excel2021版本
  16. 使用jasypt加密解密
  17. EasyRecovery五个步骤搞定数据恢复
  18. oracle daul是什么意思,Oracle中的dual表到底是干什么的
  19. 逆---LanSet.exe
  20. 新代plc编程代码及解释_新代系统 PLC 与CNC 接口列表说明

热门文章

  1. 查找MySQL查询语句被阻塞阻塞原因
  2. BDD - SpecFlow BDD 测试实践 SpecFlow 模板
  3. 不花钱,用一个小时搭建自己的博客网站
  4. ajax访问不到外部的变量,解决ajax方法内部不能给方法外部变量赋值的问题
  5. php web项目目录结构图,目录结构
  6. Redis的那些最常见面试问题
  7. python 数组排序sort_Python之排序函数sort() 和 sorted()
  8. 锂电池SOC估计Simulink模型/卡尔曼滤波估算SOC
  9. 在openlayer中对瓦片地图进行平移
  10. 把矩阵化成行最简型(伪)