Для создания столбцов (колонок) для 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;