Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        /// <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);
        }