后台数据绑定

用户场景是生成报表,展示公司各员工每个月的绩效

数据结构

包括报表和单个员工绩效两个实体

public class Report
{/// <summary>/// 统计时间/// </summary>public string StatisticalDate { get; set; }public List<ReportDetail> ReportDetails { get; set; }
}
public class ReportDetail
{/// <summary>/// 职员姓名/// </summary>public string EmployeeName { get; set; }/// <summary>/// 统计数据/// </summary>public decimal Data { get; set; }
}

关键代码

DataGrid dataGrid = new DataGrid();
var _ds = new DataSet("Test");
Dt = _ds.Tables.Add("月度绩效表");
//create columns
//创建列
Dt.Columns.Add("月份");
foreach (var item in reports[0].ReportDetails)
{Dt.Columns.Add(item.EmployeeName);
}
//fill data to rows
//赋值数据
for(int i=0;i< reports.Count;i++)
{var theRow = Dt.NewRow();theRow[0] = reports[i].StatisticalDate;for (int j = 0; j < reports[i].ReportDetails.Count; j++){theRow[j+1] = reports[i].ReportDetails[j].Data;}Dt.Rows.Add(theRow);
}
//数据绑定
dataGrid.ItemsSource = Dt.AsDataView();
//将控件添加到Grid
MyGrid.Children.Add(dataGrid);

示例代码

https://github.com/zLulus/NotePractice/blob/dev3/WPF/WpfDemo/Bind/DataGridBackgroundBind.xaml
https://github.com/zLulus/NotePractice/blob/dev3/WPF/WpfDemo/Bind/DataGridBackgroundBind.xaml.cs

其他:列头重复解决方案

当前用户场景,如果遇到行列互换,即将员工姓名和月份互换,可能出现列名相同的问题(员工同名),则最好将列头绑定改为员工姓名+员工编号,保证唯一性,前端只显示名称,绑定"名称+ID"

前端数据绑定

数据结构

包括教师和教师信息扩展两个实体

public class Teacher
{public string SchoolNumber { get; set; }public string Name { get; set; }public string Sex { get; set; }public TeacherDetailInfo TeacherDetailInfo { get; set; }
}
public class TeacherDetailInfo
{public DateTime EntryTime { get; set; }public string Address { get; set; }
}

关键代码

<DataGrid ItemsSource="{Binding }" AutoGenerateColumns="False" CanUserAddRows="False"><DataGrid.Columns><DataGridTextColumn Header="编号" Binding="{Binding SchoolNumber}"/><DataGridTextColumn Header="姓名" Binding="{Binding Name}"/><DataGridTextColumn Header="性别" Binding="{Binding Sex}"/><!--格式化日期--><DataGridTextColumn Header="入职时间" Binding="{Binding Path=TeacherDetailInfo.EntryTime, StringFormat=\{0:yyyy年MM月dd日\}}"/><!--如果这里是双向绑定,则是下面的写法,Mode是双向(TwoWay),触发器是变化即触发--><!--<DataGridTextColumn Header="入职时间" Binding="{Binding Path=TeacherDetailInfo.EntryTime,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>--><DataGridTextColumn Header="住址" Binding="{Binding Path=TeacherDetailInfo.Address}"/></DataGrid.Columns>
</DataGrid>

示例代码

https://github.com/zLulus/NotePractice/blob/dev3/WPF/WpfDemo/Bind/DataGridBindMultiData.xaml
https://github.com/zLulus/NotePractice/blob/dev3/WPF/WpfDemo/Bind/DataGridBindMultiData.xaml.cs

转载于:https://www.cnblogs.com/Lulus/p/9726375.html

DataGrid数据绑定相关推荐

  1. DataGrid 数据绑定使用小结三(数据绑定)

    上一节记录了数据绑定的自定义模板,可以在显示和编辑模板中添加任意控件实现业务需求,但出现一个问题 在编辑模板中进行编辑后却没有影响数据对象.这里要讲的是绑定的三种模式OneTime,OneWay,Tw ...

  2. DataGrid 数据绑定使用小结二(自定义列)

    Silverlight中DataGrid控件提供了三种模板分别是(DataGridCheckBoxColumn,DataGridTextColumn,DataGridTemplateColumn,Ro ...

  3. WPF使用DataGrid数据绑定

    文章目录 前言 一.新建数据模型 二.界面设计 三.数据初始化 四.WPF DataGrid.DataGridComboBoxColumn 数据绑定 前言 一.新建数据模型 public class ...

  4. 关于DataGrid数据绑定后对字段进行替换的问题与办法

    在项目中,我再次用到了VS2003的DataGrid控件进行数据显示. 根据要求,我需要在第8列将MSSQL2000中的varchar类型的数据"0"与"1"显 ...

  5. asp.net MVC的EF与easyui DataGrid数据绑定

    页面代码 @{Layout = null; }<!DOCTYPE html><html> <head><meta name="viewport&qu ...

  6. Web Form中的Datagrid的自定义分页

    ASP.NET带给我们很多惊喜,强大的Web Form控件自然是其中的重要部分.这其中,最受关注的当然是Datagrid.在ASP中用HTML标记语法来输出数据的方法在Datagrid数据绑定面前显得 ...

  7. asp.net datagrid 自定义分页

    ASP.NET带给我们很多惊喜,强大的Web Form控件自然是其中的重要部分.这其中,最受关注的当然是Datagrid.在ASP中用HTML标记语法来输出数据的方法在Datagrid数据绑定面前显得 ...

  8. Henry手记—Web Form中的Datagrid的自定义分页(转)

    原文:http://blog.csdn.net/Latitude/archive/2003/06/02/17227.aspx 韩睿  ( 05/31/2003) ASP.NET带给我们很多惊喜,强大的 ...

  9. Henry手记—Web Form中的Datagrid的自定义分页 (转)

    Henry手记-Web Form中的Datagrid的自定义分页 (转)[@more@]  Henry手记-web Form中的Datagrid的自定义分页XML:namespace prefix = ...

最新文章

  1. 知乎千万级高性能长连接网关是如何搭建的
  2. linux内核定时器使用
  3. 小程序多个echars_小程序界面与逻辑
  4. 远控时其他用户登录到这台计算机,如何远程控制另一台电脑 远程控制另一台电脑方法【详解】...
  5. 相机内参_相机标定(张正友标定算法)解读与实战一
  6. jquery的一点点认识
  7. Linux 和 Windows 下实现多进程的方式以及管道操作
  8. opencv3颜色识别(C++)
  9. BI财务分析 – 反映盈利水平利润占比的指标如何分析(上)
  10. 弹性网卡支持私网多IP
  11. 抽35块树莓派新品单片机送给可爱的你们
  12. 黑暗城堡 LibreOJ - 10064(SPFA)
  13. Android源码目录结构详解(转载)
  14. HTTP协议压缩格式和URL编码介绍
  15. 什么牌子的护眼灯最好?分享四款护眼灯合格的品牌
  16. mysql之通过cmd连接远程数据库
  17. GCN笔记:Graph Convolution Neural Network,ChebNet
  18. CDHtmlDialog屏蔽网页右键菜单
  19. [转载]TMS320F2812引脚详细分析(转帖整理)
  20. Linux 5.13-rc1 发布 初步支持苹果M1

热门文章

  1. java 多态实现的jvm调用过程_多态:JVM是如何进行方法调用的
  2. c语言程序中必不可少的,C语言程序设计(第3章程序控制语句)2
  3. 计算机桌面打标签,在电脑桌面上添加便签的方法步骤详解(2)
  4. spring常见术语理解
  5. 准考证打印系统关闭怎么办_2019年执业药师准考证无法正常打印,怎么办?
  6. c语言把数据存放在文件中,急求如何将下列C语言程序数据存储到文件中?
  7. java8 stream 做累加_《Java 8 in Action》Chapter 1:为什么要关心Java 8
  8. (模拟+floyd)Saving James Bond
  9. tomcat java垃圾回收_tomcat启动参数配置,内存和垃圾回收
  10. 嵌入式和fpga哪个好前景_Java 和 go 哪个就业前景好一点?面向金钱编程,这个回答太现实...