Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to programmatically add rows to DataGrid in C#?

Tags:

c#

wpf

datagrid

So as the title states, I'm trying to add rows to a DataGrid programmatically using C# but I can't seem to make it work. This is what I have so far.

// I have a DataGrid declared as dg in the XAML

foreach (string s in array) {
    int index = 0;
    DataGridRow dgRow = new DataGridRow();
    foreach (DataGridColumn dgColumn in columns)
    {
        // Trying to add Text to dgRow here but IDK how
        index++;
    }
}

I've been googling around and the closest I got to adding anything was to use {column = value} but it just throws me an error. Really out of ideas now though :\

like image 929
Lorenzo Ang Avatar asked Feb 10 '15 07:02

Lorenzo Ang


2 Answers

Here's you can do it better way by binding a source to datagridview

        // Creating DataSource here as datatable having two columns
        DataTable dt = new DataTable();
        dt.Columns.Add("ID", typeof(int));
        dt.Columns.Add("Name");

        // Adding the rows in datatable
        for (int iCount = 1; iCount < 6; iCount++)
        {
            var row = dt.NewRow();
            row["ID"] = iCount;
            row["Name"] = "Name " + iCount;
            dt.Rows.AddRow(row);
        }

        DataGridView dgv = new DataGridView();
        // Set AutoGenerateColumns true to generate columns as per datasource.
        dgv.AutoGenerateColumns = true;
        // Finally bind the datasource to datagridview.
        dgv.DataSource = dt;

In Case you are using WPF DataGrid you can bind it like this way-

dgv.DataContext = employeeData.DefaultView;

and in

XAML

<DataGrid Name="dgv" ItemsSource="{Binding}">
like image 172
Rohit Prakash Avatar answered Sep 20 '22 03:09

Rohit Prakash


//create datatable and columns,
DataTable dtable = new DataTable();
dtable.Columns.Add(new DataColumn("Column 1"));
dtable.Columns.Add(new DataColumn("Column 2"));

//simple way create object for rowvalues here i have given only 2 add as per your requirement
object[] RowValues = { "", "" };

//assign values into row object
RowValues[0] = "your value 1";
RowValues[1] = "your value 2";

//create new data row
DataRow dRow;
dRow = dtable.Rows.Add(RowValues);
dtable.AcceptChanges();

//now bind datatable to gridview... 
gridview.datasource=dbtable;
gridview.databind();

Regards

like image 39
Bhavik Soni Avatar answered Sep 24 '22 03:09

Bhavik Soni