示例#1
0
        public static void ToMergeDgv <Title, Model>(this MergeDataGridView mdgv, List <Model> objs)
        {
            if (mdgv.MergeColumnNames == null)
            {
                mdgv.MergeColumnNames = new List <string>();
            }

            if (mdgv.ColumnCount == 0)
            {
                var ps = typeof(Model).GetProperties();

                foreach (var p in ps)
                {
                    var pDcrp  = p.GetDcrp();
                    var column = new DataGridViewTextBoxColumn
                    {
                        Name             = p.Name,
                        Tag              = p.GetReference(),
                        DataPropertyName = p.Name,
                        HeaderText       = pDcrp,
                        FillWeight       = GetColumnWeight(pDcrp)
                    };

                    mdgv.Columns.Add(column);
                    mdgv.MergeColumnNames.Add(p.Name);
                }
            }

            mdgv.DataSource = objs;
            mdgv.SetMdgvStyle();
            MergeHeaders <Title>(mdgv);
            mdgv.SetCellInfos();
        }