原文:WPF Datagrid 动态生成列 并绑定数据

说的是这里 因为列头是动态加载的 (后台for循环 一会能看到代码)

数据来源于左侧列

左侧列数据源 当然num1 属于临时的dome使用  可以用ObservableCollection集合代表 动态创建属性

WPF 动态生成对象属性 (dynamic)


  1. ObservableCollection<NameList> listName = new ObservableCollection<NameList>();
  2. private ObservableCollection<NameList> GetNameData()
  3. {
  4. listName.Add(new NameList("市川 賞子", "リーダー", "B", 1, "2", "14", "r1", "R5", "T6"));
  5. listName.Add(new NameList("石田", "リーダー", "C", 2, "33", "T4", "r2", "R5", "T6"));
  6. listName.Add(new NameList("安达 鮎美", "リーダー", "C", 3,"3","4","r1","R6","T6"));
  7. return listName;
  8. }
  9. }
  10. public class NameList : INotifyPropertyChanged
  11. {
  12. public event PropertyChangedEventHandler PropertyChanged;
  13. public NameList(string name, string jOb, string class_, int num, string n1, string n2, string n3, string n4, string n5) { Name = name; Class_ = class_; JOb = jOb; Num = num; Num1 = n1; Num2 = n2; Num3 = n3; Num4 = n4; Num5 = n5; }
  14. private string name;
  15. public string Name
  16. {
  17. get { return name; }
  18. set
  19. {
  20. name = value;
  21. if (PropertyChanged != null)
  22. {
  23. PropertyChanged(this, new PropertyChangedEventArgs("Name"));
  24. }
  25. }
  26. }
  27. private int num;
  28. public int Num
  29. {
  30. get { return num; }
  31. set
  32. {
  33. num = value;
  34. if (PropertyChanged != null)
  35. {
  36. PropertyChanged(this, new PropertyChangedEventArgs("Num"));
  37. }
  38. }
  39. }
  40. private string class_;
  41. public string Class_
  42. {
  43. get { return class_; }
  44. set
  45. {
  46. class_ = value;
  47. if (PropertyChanged != null)
  48. {
  49. PropertyChanged(this, new PropertyChangedEventArgs("Class_"));
  50. }
  51. }
  52. }
  53. private string jOb;
  54. public string JOb
  55. {
  56. get { return jOb; }
  57. set
  58. {
  59. jOb = value;
  60. if (PropertyChanged != null)
  61. {
  62. PropertyChanged(this, new PropertyChangedEventArgs("JOb"));
  63. }
  64. }
  65. }
  66. private string num1;
  67. public string Num1
  68. {
  69. get { return num1; }
  70. set { num1 = value;
  71. if (PropertyChanged != null)
  72. {
  73. PropertyChanged(this, new PropertyChangedEventArgs("Num1"));
  74. }
  75. }
  76. }
  77. private string num2;
  78. public string Num2
  79. {
  80. get { return num2; }
  81. set { num2 = value;
  82. if (PropertyChanged != null)
  83. {
  84. PropertyChanged(this, new PropertyChangedEventArgs("Num2"));
  85. }
  86. }
  87. }
  88. private string num3;
  89. public string Num3
  90. {
  91. get { return num3; }
  92. set { num3 = value;
  93. if (PropertyChanged != null)
  94. {
  95. PropertyChanged(this, new PropertyChangedEventArgs("Num3"));
  96. }
  97. }
  98. }
  99. private string num4;
  100. public string Num4
  101. {
  102. get { return num4; }
  103. set { num4 = value;
  104. if (PropertyChanged != null)
  105. {
  106. PropertyChanged(this, new PropertyChangedEventArgs("Num4"));
  107. }
  108. }
  109. }
  110. private string num5;
  111. public string Num5
  112. {
  113. get { return num5; }
  114. set { num5 = value;
  115. if (PropertyChanged != null)
  116. {
  117. PropertyChanged(this, new PropertyChangedEventArgs("Num5"));
  118. }
  119. }
  120. }
  121. }

列数据动态生成 与数据绑定


  1. public MainWindow()
  2. {
  3. InitializeComponent();
  4. addColumn();
  5. dataGrid.ItemsSource = GetNameData();
  6. }
  7. List<string> LS = new List<string>();
  8. public void addColumn()
  9. {
  10. LS.Add("表下カップ綿天竺仮縫い_37s_C_1");
  11. LS.Add("上カップマーキしつけ_28s_C_2");
  12. LS.Add("上下カップ接ぎ_33s_C_3");
  13. LS.Add("上下カップ押え_62s_B_4");
  14. LS.Add("カップ脇しつけ_14s_B_5");
  15. LS.Add("表上カップレース端押さえ_41s_B_6");
  16. for (int i = 0; i < LS.Count; i++)
  17. {
  18. DataGridTextColumn dl = new DataGridTextColumn();
  19. dl.Header=LS[i];
  20. dl.Binding = new Binding("Num" + (i + 1) );
  21. dataGrid.Columns.Add(dl);
  22. }
  23. }

主要是 bingding 这一行

需要知道这俩块怎么做的朋友 可以看连接

WPF (DataGridColumnHeader)实现自义定列头样式 并绑定数据

WPF (DataGridRowHeaderStyle)实现自义定行样式 并绑定数据

WPF Datagrid 动态生成列 并绑定数据的更多相关文章

  1. Wpf DataGrid动态添加列,行数据(一)

    由于最近有这方面的需求,而且刚接触wpf不久,在网上找了很多方法,都不是使用MVVM模式的,因为DataGrid的列不能绑定 这就难受了,我想了个折中的方法,这个是使用了MVVMLight的消息机制, ...

  2. Wpf DataGrid动态添加列,行数据(二)

    这是第二中方法,可直接绑定,我这里只是做出了一种思路,并不是最完美. 这里注意一下,因为我里面引用了MVVMLight,所以可能代码不是复制过去就能用了的. 样式也是,所以复制过去看不是我贴出来的界面 ...

  3. WPF DataGrid动态生成列的单元格背景色绑定

    <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=Column.DisplayInde ...

  4. WPF datagrid 动态增加列

    DataGrid动态增加列 <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.m ...

  5. EasyUI datagrid动态生成列

    任务描述:根据用户选择时间段,生成列数据,如图

  6. WPF + RDLC + 动态生成列 + 表头合并

    如下,评论超过20条,马上发代码*(੭*ˊᵕˋ)੭*ଘ,效果如下: 代码逻辑简单. WPF使用RDLC需要使用如下DLL 新建WPF 窗体,黏贴下大概如下 <Window xmlns:rv=&q ...

  7. easylui datagrid 动态生成列

    function load(sdate) { $.getJSON("workorder/statistics.do", { sdate : sdate+'-01' }, funct ...

  8. WPF DataGrid自动生成列

    <Window x:Class="DataGridExam.MainWindow"        xmlns="http://schemas.microsoft.c ...

  9. easyui datagrid 动态生成列

    for (var item_key in data) {//遍历json对象的每个key/value对,p为key var reg = /^score\d+/gi; for (var key in d ...

随机推荐

  1. css知识笔记:水平垂直居中(别只看,请实操!!!)

    css实现元素的水平垂直居中. (尝试采用5W2H方法说明): 别只看,请实操!!! What: 1.这篇文档主要描述元素水平方向居中的几种最常见和最实用的几种方式,并说明优缺点. 2.写这篇文章的目 ...

  2. NuGet修改默认包保存的位置

    NuGet默认的全局包下载地址一般为:C:\Users\{username}\.nuget\packages 修改方法: <?xml version="1.0" encodi ...

  3. 从0系统学Android--3.5 最常用和最难用的控件---ListView

    从0系统学Android-- 3.5 最常用和最难用的控件---ListView 本系列文章目录:更多精品文章分类 本系列持续更新中.... 3.5 最常用和最难用的控件---ListView Lis ...

  4. 码农-->工程师

    微信公众号推送文章记录,侵删 一个猎人的比喻: 当土著拿到猎枪之后,他们射箭的技能退化严重,但因为食物更多了,厨艺有了长足的进展. 当你不再为一些问题担心之后,你就可以把注意力集中在另外一些问题上了. ...

  5. 解决Maven无法下载fastdfs-client-java依赖

    异常信息:Missing artifact org.csource:fastdfs-client-java:jar:1.27-SNAPSHOT 解决方案:jar包在Maven的中央仓库中缺失,需要手动 ...

  6. Python如何动态的为对象添加方法或属性,__slots__用法

    代码示例如下: import types    #使用MethodType方法需要导入包 class test(object):  #定义 一个test类,包含name属性和f()方法 def __i ...

  7. pytorch 中改变tensor维度的几种操作

    具体示例如下,注意观察维度的变化 #coding=utf-8 import torch """改变tensor的形状的四种不同变化形式""" ...

  8. Java之Math类

    概述 java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数.类似这样的工具 类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单. 基本运算的方 ...

  9. 【RTOS】基于V7开发板的RTX5和FreeRTOS带CMSIS-RTOS V2封装层的模板例程下载,AC6和AC5两个版本

    说明: 1.使用MDK的RTE环境开发RTX5和FreeRTOS,简单易移植,统一采用CMSIS-RTOS V2封装层. 2.DTCM是H7里面性能最高的RAM,主频400MHz,跟内核速度一样,所以 ...

  10. SpringBoot系列之@PropertySource读取yaml文件

    SpringBoot系列之@PropertySource支持yaml文件读取 最近在做实验,想通过@PropertySource注解读取配置文件的属性,进行映射,习惯上用properties都是测试没 ...