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(); }