Использование другого имени для столбца datarow вместо свойства в Classe - PullRequest
0 голосов
/ 15 января 2020

Я не вижу, где я сейчас делаю ошибку, поэтому слева в dataGridView он печатает имена Свойство из столбца Класса, могу ли я изменить его на какой-то текст?
В частности, я бы предпочитают, чтобы вместо имени («День», «firstG», «firstB», «secondG», «secondB», thirdG »,« firstE ») было: dayOfWeek text1 text2 text3 text4 text5 Tekst6, не изменяя имя свойство из Classe Column:)

Это мой текущий вид таблицы данных

enter image description here

И это мой текущий код:

   private class Column
    {
        public string Day { get; set; }
        public string firstG { get; set; }
        public string firstB { get; set; }
        public string secondG { get; set; }
        public string secondB { get; set; }
        public string thirdG { get; set; }
        public string firstE { get; set; }
    } 
List<Column> dailyForms = new List<Column>();

dailyForms.Add(new Column { Day = DayOfWeek.Monday, firstG = "07:30", firstB = "08:30", secondG = "11:45", secondB = "13:15", firstE = "17:00", thirdG = "19:30" });
dailyForms.Add(new Column { Day = DayOfWeek.Tuesday, firstG = "07:30", firstB = "08:30", secondG = "11:45", secondB = "13:15", firstE = "17:00", thirdG = "19:30" });
dailyForms.Add(new Column { Day = DayOfWeek.Wednesday, firstG = "07:30", firstB = "08:30", secondG = "11:45", secondB = "13:15", firstE = "17:00", thirdG = "19:30" });
dailyForms.Add(new Column { Day = DayOfWeek.Thursday, firstG = "07:30", firstB = "08:30", secondG = "11:45", secondB = "13:15", firstE = "17:00", thirdG = "19:30" });
dailyForms.Add(new Column { Day = DayOfWeek.Friday, firstG = "07:30", firstB = "08:30", secondG = "11:45", secondB = "13:15", firstE = "17:00", thirdG = "19:30" });
dailyForms.Add(new Column { Day = DayOfWeek.Saturday, firstG = "07:30", firstB = "08:00", secondG = "16:30",  firstE = "17:00" });

 var dataTable = ConvertToDatatable(dailyForms);  
 DataTable transposeTable = GenerateTransposedTable(dataTable);
 dataGridView1.DataSource = transposeTable;

   private DataTable GenerateTransposedTable(DataTable inputTable)
    {
        DataTable outputTable = new DataTable();
        // Add columns by looping rows
        // Header row's first column is same as in inputTable
        outputTable.Columns.Add(inputTable.Columns[0].ColumnName.ToString());
        // Header row's second column onwards, 'inputTable's first column taken
        foreach (DataRow inRow in inputTable.Rows)
        {
            string newColName = inRow[0].ToString();
            outputTable.Columns.Add(newColName);
        }
        // Add rows by looping columns        
        for (int rCount = 1; rCount <= inputTable.Columns.Count - 1; rCount++)
        {
            DataRow newRow = outputTable.NewRow();

            // First column is inputTable's Header row's second column
            newRow[0] = inputTable.Columns[rCount].ColumnName.ToString();
            for (int cCount = 0; cCount <= inputTable.Rows.Count - 1; cCount++)
            {
                string colValue = inputTable.Rows[cCount][rCount].ToString();
                newRow[cCount + 1] = colValue;
            }
            outputTable.Rows.Add(newRow);
        }

        return outputTable;
    }
    private static DataTable ConvertToDatatable<T>(List<T> data)
    {
        PropertyDescriptorCollection props = TypeDescriptor.GetProperties(typeof(T));
        DataTable table = new DataTable();
        for (int i = 0; i < props.Count; i++)
        {
            PropertyDescriptor prop = props[i];
            if (prop.PropertyType.IsGenericType && prop.PropertyType.GetGenericTypeDefinition() == typeof(Nullable<>))
                table.Columns.Add(prop.Name, prop.PropertyType.GetGenericArguments()[0]);
            else
                table.Columns.Add(prop.Name, prop.PropertyType);
        }

        object[] values = new object[props.Count];
        foreach (T item in data)
        {
            for (int i = 0; i < values.Length; i++)
            {
                values[i] = props[i].GetValue(item);
            }
            table.Rows.Add(values);
        }
        return table;
    }

Большое спасибо за вашу помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...