or


public partial class Form1 : Form{ private static readonly List<string> DaysOfWorkingWeekList = new List<string>(new[] { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday"}); private static readonly List<string> DaysOfWeekList = new List<string>(new[] { "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" }); public Form1() { InitializeComponent(); foreach (var column in GetColumns()) { rgvMain.MasterTemplate.Columns.Add(column); } rgvMain.MasterTemplate.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill; UpdateGroupHeader(); var serviceWeeks = new List<ServiceWeek>(); var serviceWeek = new ServiceWeek(); serviceWeeks.Add(serviceWeek); rgvMain.DataSource = serviceWeeks; } private void UpdateGroupHeader() { AddGroupHeader(rgvMain.MasterTemplate, radCheckBox1.IsChecked ? DaysOfWeekList : DaysOfWorkingWeekList); rgvMain.MasterTemplate.Refresh(); } private void radCheckBox1_CheckStateChanged(object sender, EventArgs e) { UpdateGroupHeader(); } public void AddGroupHeader(GridViewTemplate template, List<string> groupHeaderText) { var columnGroupsView = new ColumnGroupsViewDefinition(); for (int i = 0, index = 0; index < groupHeaderText.Count; index++) { columnGroupsView.ColumnGroups.Add(new GridViewColumnGroup(groupHeaderText[index])); columnGroupsView.ColumnGroups[index].Rows.Add(new GridViewColumnGroupRow()); columnGroupsView.ColumnGroups[index].Rows[0].Columns.Add(template.Columns[i++]); columnGroupsView.ColumnGroups[index].Rows[0].Columns.Add(template.Columns[i++]); } template.ViewDefinition = columnGroupsView; } private IEnumerable<GridViewTextBoxColumn> GetColumns() { return new List<GridViewTextBoxColumn> { new GridViewTextBoxColumn(), new GridViewTextBoxColumn {Width = 50, MinWidth = 50, MaxWidth = 50}, new GridViewTextBoxColumn(), new GridViewTextBoxColumn {Width = 50, MinWidth = 50, MaxWidth = 50}, new GridViewTextBoxColumn(), new GridViewTextBoxColumn {Width = 50, MinWidth = 50, MaxWidth = 50}, new GridViewTextBoxColumn(), new GridViewTextBoxColumn {Width = 50, MinWidth = 50, MaxWidth = 50}, new GridViewTextBoxColumn(), new GridViewTextBoxColumn {Width = 50, MinWidth = 50, MaxWidth = 50}, new GridViewTextBoxColumn(), new GridViewTextBoxColumn {Width = 50, MinWidth = 50, MaxWidth = 50}, new GridViewTextBoxColumn(), new GridViewTextBoxColumn {Width = 50, MinWidth = 50, MaxWidth = 50} }; }}public class Service{}public class ServiceWeek{ public Service MondayService { get; set; } public Service SundayService { get; set; } public Service SaturdayService { get; set; } public Service FridayService { get; set; } public Service ThursdayService { get; set; } public Service WednesdayService { get; set; } public Service TuesdayService { get; set; }}