How can I add data Items to a DataGrid
programmatically in WPF which do not have bindings? The DataGrid
has 4 columns.
WPF DataGrid (SfDataGrid) provides built-in row called AddNewRow. It allows user to add a new row to underlying collection. You can enable or disable by setting SfDataGrid.
A Grid is a control for laying out other controls on the form (or page). A DataGrid is a control for displaying tabular data as read from a database for example.
It is not very clear, what You like to do. I guess, You have defined some place where You want to put the DataGrid. For illustration purposes, I created a new WPF project and use the code provided by chridram, who posted the first answer.
In the following MainWindow.xaml I name the Grid MainGrid to access it in the code behind:
<Window x:Class="WpfExperiments.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid Name="MainGrid"/>
</Window>
The DataItem class is not a WPF class, but a custom class created by Yourself:
public class DataItem
{
public string Column1 { get; set; }
public string Column2 { get; set; }
public string Column3 { get; set; }
public string Column4 { get; set; }
}
To let the DataGrid display data stored in DataItem objects programmatically, You may do the following:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
// Your programmatically created DataGrid is attached to MainGrid here
var dg = new DataGrid();
this.MainGrid.Children.Add(dg);
// create four columns here with same names as the DataItem's properties
for (int i = 1; i <= 4; ++i)
{
var column = new DataGridTextColumn();
column.Header = "Column" + i;
column.Binding = new Binding("Column" + i);
dg.Columns.Add(column);
}
// create and add two lines of fake data to be displayed, here
dg.Items.Add(new DataItem { Column1 = "a.1", Column2 = "a.2", Column3 = "a.3", Column4 = "a.4" });
dg.Items.Add(new DataItem { Column1 = "b.1", Column2 = "b.2", Column3 = "b.3", Column4 = "b.4" });
}
}
I hope this helps.
Greetings Jörg
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With