Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

programmatically add column & rows to WPF Datagrid

I'm new to WPF. I just want to know how should we add columns and rows programmatically to a DataGrid in WPF. The way we used to do it in windows forms. create table columns and rows, and bind it to DataGrid.

I believe WPF DataGrid is bit different the one used in ASP.net and Windows form (correct me if I am wrong).

I have No. of rows and columns which I need to draw in DataGrid so that user can edit the data in the cells.

like image 329
Andy Avatar asked Apr 01 '09 09:04

Andy


2 Answers

To programatically add a row:

DataGrid.Items.Add(new DataItem()); 

To programatically add a column:

DataGridTextColumn textColumn = new DataGridTextColumn();  textColumn.Header = "First Name";  textColumn.Binding = new Binding("FirstName");  dataGrid.Columns.Add(textColumn);  

Check out this post on the WPF DataGrid discussion board for more information.

like image 141
John Myczek Avatar answered Oct 21 '22 13:10

John Myczek


try this , it works 100 % : add columns and rows programatically : you need to create item class at first :

public class Item         {             public int Num { get; set; }             public string Start { get; set; }             public string Finich { get; set; }         }          private void generate_columns()         {             DataGridTextColumn c1 = new DataGridTextColumn();             c1.Header = "Num";             c1.Binding = new Binding("Num");             c1.Width = 110;             dataGrid1.Columns.Add(c1);             DataGridTextColumn c2 = new DataGridTextColumn();             c2.Header = "Start";             c2.Width = 110;             c2.Binding = new Binding("Start");             dataGrid1.Columns.Add(c2);             DataGridTextColumn c3 = new DataGridTextColumn();             c3.Header = "Finich";             c3.Width = 110;             c3.Binding = new Binding("Finich");             dataGrid1.Columns.Add(c3);              dataGrid1.Items.Add(new Item() { Num = 1, Start = "2012, 8, 15", Finich = "2012, 9, 15" });             dataGrid1.Items.Add(new Item() { Num = 2, Start = "2012, 12, 15", Finich = "2013, 2, 1" });             dataGrid1.Items.Add(new Item() { Num = 3, Start = "2012, 8, 1", Finich = "2012, 11, 15" });          } 
like image 40
aminescm Avatar answered Oct 21 '22 12:10

aminescm