Для создания столбцов (колонок) для DataGrid в WPF приложении можно использовать свойство AutoGenerateColumns со значением True для автоматического создания колонок на основе источника данных, можно указать их в xaml-файле, а можно добавлять из code-behind файла. У каждого метода есть свои плюсы и минусы, каждый для себя сам решит, что использовать. Но создание из кода точно требуется для динамических приложенрий.

Снова для примера наш DataGrid, описанный в xaml-фале:

<DataGrid Name="dgv" HorizontalAlignment="Left" Margin="86,117,0,0" VerticalAlignment="Top" Height="164" Width="410"/>

 

Снова класс SunsetTime из предыдущего примера (C#. Заполнить столбцы DataGrid в WPF приложении).

        public class SunsetTime
        {
            public string datestr { get; set; }
            public string voshod { get; set; }
        }

И немного данных для коллекции класса SunsetTime:

            inf.Add(new SunsetTime {
                 voshod = "9:01:06",
                 zahod = "16:07:38"
            });
            inf.Add(new SunsetTime {
                 voshod = "9:00:51",
                 zahod = "16:08:47"
            });

            inf.Add(new SunsetTime {
                 voshod = "9:00:33",
                 zahod = "16:10:00"
            });

 

Теперь для контрола DataGrid отключите автоматическую генерацию столбцов и опишем пару колонок:

            dgv.AutoGenerateColumns = false;
            dgv.Columns.Add(new DataGridTextColumn
            {
                Header = "Восход",
                Binding = new Binding("datestr")
            });

            dgv.Columns.Add(new DataGridTextColumn
            {
                Header = "Заход",
                Binding = new Binding("zahod")
            });

 

Теперь укажем, что источником данных для контрола является коллекция inf.

            dgv.ItemsSource = inf;
Заполнить столбцы DataGrid в WPF приложении

Заполнить столбцы DataGrid в WPF приложении