/// <summary> /// 绑定数据 /// </summary> /// <param name="grid"></param> /// <param name="list"></param> /// <returns></returns> public List <BindClass> ColumnDisplay(DataGrid grid, List <string[]> list) { grid.AutoGenerateColumns = false; List <BindClass> relist = new List <BindClass>(); //需要经过一系列讲List<string[]> 转换为List<BingClass> for (int num = 0; num < list[0].Length; num++) { //DataGridTextColumn 在C#中定义,使xaml自由一点 DataGridTextColumn column = new DataGridTextColumn(); Binding binding = new Binding(keystrarr[num]); //这部分很重要 定义该列绑定指定的属性列 grid.FrozenColumnCount = 1; binding.Mode = BindingMode.TwoWay; column.Binding = binding; column.Header = list[0][num]; //注意我的list第一行是中文字段名用作DataGird列名 grid.Columns.Add(column); } for (int i = 1; i < list.Count; i++) //List<string[]> 转换为List<BingClass> { string[] strs = list[i]; if (strs != null) { BindClass bing = new BindClass(); for (int j = 0; j < strs.Length; j++) { bing.keyarr[j] = strs[j]; } bing.Refresh(); //很重要,使集合中的值赋给各个key属性 relist.Add(bing); } else { break; //relist.Add(null);// } } grid.ItemsSource = relist; //费这么大功夫就为了这一行…… return(relist); }
/// <summary> /// 绑定数据 /// </summary> /// <param name="grid"></param> /// <param name="list"></param> /// <param name="addColumnlHeadArr"></param> /// <param name="addColumnlContentArr"></param> /// <returns></returns> public List <BindClass> ColumnDisplay(DataGrid grid, string[][] list, List <string> addColumnlHeadArr = null, List <string[]> addColumnlContentArr = null) { grid.AutoGenerateColumns = false; List <BindClass> relist = new List <BindClass>(); //需要经过一系列讲List<string[]> 转换为List<BingClass> int sIndex = 0; if (addColumnlHeadArr != null && addColumnlContentArr != null && addColumnlHeadArr.Count == addColumnlContentArr.Count) { for (int i = 0; i < addColumnlHeadArr.Count; i++) { DataGridTextColumn column = new DataGridTextColumn(); Binding binding = new Binding(keystrarr[i]); //这部分很重要 定义该列绑定指定的属性列 grid.FrozenColumnCount = 1; binding.Mode = BindingMode.TwoWay; column.Binding = binding; column.Header = addColumnlHeadArr[i];//list[0][num]; //注意我的list第一行是中文字段名用作DataGird列名 grid.Columns.Add(column); sIndex++; } } if (list[0] != null) { for (int num = 0; num < list[0].Length; num++) { //DataGridTextColumn 在C#中定义,使xaml自由一点 DataGridTextColumn column = new DataGridTextColumn(); Binding binding = new Binding(keystrarr[num + sIndex]); //这部分很重要 定义该列绑定指定的属性列 grid.FrozenColumnCount = 1; binding.Mode = BindingMode.TwoWay; column.Binding = binding; column.Header = list[0][num]; //注意我的list第一行是中文字段名用作DataGird列名 grid.Columns.Add(column); } for (int i = 1; i < list.Length; i++) //List<string[]> 转换为List<BingClass> { string[] strs = list[i]; if (strs != null) { BindClass bing = new BindClass(); if (addColumnlHeadArr != null && addColumnlContentArr != null && addColumnlHeadArr.Count == addColumnlContentArr.Count) { for (int k = 0; k < addColumnlContentArr.Count; k++) { if (k < addColumnlContentArr[k].Length && i <= addColumnlContentArr[k].Length) { bing.keyarr[k] = addColumnlContentArr[k][i - 1]; } } } for (int j = 0; j < strs.Length; j++) { bing.keyarr[j + sIndex] = strs[j]; } bing.Refresh(); //很重要,使集合中的值赋给各个key属性 relist.Add(bing); } else { break; //relist.Add(null);// } } } else { //string s = ""; } grid.ItemsSource = relist; //费这么大功夫就为了这一行…… return(relist); }