一,前端

<DataGrid x:Name="Onlinedatagrid" AutoGenerateColumns="True"  HorizontalAlignment="Left" Height="366" Margin="35,54,0,0" VerticalAlignment="Top" Width="720"/>

最主要的两个属性就是DataGrid中的Name和AutoGenerateColumns="True".这两个属性。

二,后端

在按钮的click查询事件中。如果数据是6个为1行,那么列的个数就是6.

    private void QueryCharge_Click(object sender, RoutedEventArgs e){try{DateTime start = startTimeRecharge.SelectedDate.Value;DateTime end = endTimeReCharge.SelectedDate.Value;List<string > list = client.QueryReChargeOTwo(start, end);//这里接收返回来的list//将list分组显示List<List<string>> listGroup = new List<List<string>>();int m = 6;//这个是列的个数int j = m;for (int i = 0; i < list.Count; i += m){List<string> cList = new List<string>();cList = list.Take(j).Skip(i).ToList();j += m;listGroup.Add(cList);}DataTable dt = new DataTable();//列的名称dt.Columns.Add("列名1", typeof(string));dt.Columns.Add("列名2", typeof(string));dt.Columns.Add("列名3", typeof(string));dt.Columns.Add("列名4", typeof(string));dt.Columns.Add("列名5", typeof(string));dt.Columns.Add("列名6", typeof(string));DataRow row;foreach (var item in listGroup){row = dt.NewRow();row["列名1"] = item[0];row["列名2"] = item[1];row["列名3"] = item[2];row["列名4"] = item[3];row["列名5"] = item[4];row["列名6"] = item[5];dt.Rows.Add(row);}Onlinedatagrid.ItemsSource = dt.DefaultView;}catch (Exception ex){MessageBox.Show(ex.Message);}}

最后非常感谢王文诏同学的帮助!

封装后的代码:

当我们将要使用多次将list的数据绑定到Datagrid控件中时,需要写很多重复的代码。封装之后的代码,只需要对他进行调用即可。

  public class BindDatagrid{public DataTable Bind(List<string> listName, List<string> listLink){List<List<string>> listGroup = new List<List<string>>();int m = listName.Count;//这个是列的长度int j = m;//根据传过来的列名来对返回的数据进行划分成一组一组的数据for (int i = 0; i < listLink.Count; i += m){List<string> cList = new List<string>();cList = listLink.Take(j).Skip(i).ToList();j += m;listGroup.Add(cList);}DataTable dt = new DataTable();//让一组一组的数据填入到对应的列的for (int k = 0; k < listName.Count; k++){dt.Columns.Add(listName[k], typeof(string));    }DataRow row;foreach (var item in listGroup){row = dt.NewRow();for (int l = 0; l < listName.Count; l++){row[listName[l]] = item[l];}dt.Rows.Add(row);}return dt;}}

调用时:

                //通过WCF获取返回来的数据源List<string> list = client.QueryOnwork();List<List<string>> listGroup = new List<List<string>>();//listName 用于存放列名List<string> listName = new List<string>();listName.Add(Constant.CardNo);listName.Add(Constant.Level);listName.Add(Constant.OnTime);listName.Add(Constant.Computer );BindDatagrid bind = new BindDatagrid();DataTable dt = bind.Bind(listName, list);//OnLineDategrid是datagrid控件名OnLineDategrid.ItemsSource = dt.DefaultView;

WPF中如何将List<string>数据绑定到DataGrid控件中相关推荐

  1. 想在PPT中插入swf文件,但是在其他控件中找不到shockwave falsh object,怎么办?(win7)

    经过我的一些探索之路,我终于发现了我的win7电脑的问题所在,没有安装Adobe flash player,如果有相同问题的同学可以继续往下看. 1.下载安装Adobe flash player 为了 ...

  2. 获取WPF的DataGrid控件中,是否存在没有通过错误验证的Cell

    C# code ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19         /// <summary>         /// 获取 ...

  3. 在DataList控件中删除数据记录

    (一)在DataList控件中删除记录的设计要点 在DataList控件中删除数据记录的设计相对简单一点.该功能设计的重点在于当用户单击[删除]按钮时,程序如何判断要删除的是哪一行.使DataList ...

  4. Web Client Software Factory系列(4):数据绑定和ObjectContainerDataSource控件

    概述 在Web Client Software Factory系列(3):View-Presenter模式中提到,表示器包含了响应用户事件逻辑以及一些View的状态等,在Web Client Soft ...

  5. C# WPF DataGrid控件的详细介绍和推荐一些样式设计

    前面介绍过使用DataGrid简单绑定一个数据模型,接着介绍DataGrid的一些详细操作. 参考:C# WPF DataGrid的使用 定制DataGrid控件基本外观属性 RowBackgroun ...

  6. 【ASP.NET】第八课——GridView 控件的编辑功能优化,GridView控件中嵌套DropDownList控件

    知识点:掌握 GridView 的编辑.高亮显示的功能 .GridView控件中嵌套DropDownList控件获取数据源. [ASP.NET]第七课--数据绑定和 GridView 控件的使用 重点 ...

  7. 控件中一些常用的属性和事件

    1.1常用基本属性 1)Name:表示控件的名称. 2)Enabled:表示控件是否可以对用户交互做出响应. 3)Font:表示控件中显示文字的字体格式,包括字体名称.字号以及是否以斜体.加粗和下划线 ...

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

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

  9. 在WPF的WebBrowser控件中抑制脚本错误

    在WPF的WebBrowser控件中抑制脚本错误 原文:在WPF的WebBrowser控件中抑制脚本错误 今天用WPF的WebBrowser控件的时候,发现其竟然没有ScriptErrorsSuppr ...

最新文章

  1. 蚂蚁金服开源增强版 Spring Boot 的研发框架!
  2. codeforces 383D
  3. GNU make manual 翻译(四十)
  4. 验证字符串是否以指定字符开头
  5. 理解Javascript_02_理解undefined和null
  6. 机器学习的未来——深度特征融合
  7. 网络服务家族图谱:一张图带您了解华为云网络服务大家族!【华为云分享】
  8. python怎么另起一行阅读答案_使用Python+Dlib构建人脸识别系统(在Nvidia Jetson Nano 2GB开发板上)...
  9. 【洛谷】P1111 修复公路
  10. Vue源码学习(三)——数据双向绑定
  11. 空间解析几何 | 经典例题、李林880例题
  12. Coreldraw x6离线激活注册机免费下载安装教程
  13. 分别用Java应用程序和Applet程序实现星星三角形图案的绘制
  14. Swift macOS NSTextField 响应键盘按键 Enter 回车键,或者其它按键
  15. kso经验记录 --- c# 之MD5加密算法
  16. 复变函数基本概念总结
  17. Corner芯片TT,FF,SS
  18. 关于UEM 统一终端管理
  19. 计算机音乐数字乐谱星星点灯,星星点灯钢琴简谱-数字双手-郑智化
  20. ubuntu安装eclipse、jdk以及环境配置

热门文章

  1. rasa、rasa-webchat 安装使用记录
  2. AP微积分水平考试,考什么?怎么考?
  3. 使用VideoPlayer播放mp4(隐藏控件,点击全屏,窗口自适应父级)
  4. 【PyTorch基础教程29】DIN模型
  5. python打造流媒体服务器_使用Flask搭建一个流媒体服务器
  6. 金蝶EAS系统,凭证接口,凭证重复,系统已经引入过凭证
  7. FastAdmin ULR取别名,重写名别。
  8. EV SSl证书和其他SSL证书有什么不一样
  9. randi创建矩阵变量
  10. 替代A100,英伟达向中国市场推出性能阉割版A800 GPU芯片