如何在C#中以编程方式将行添加到DataGrid中



因此,正如标题所述,我正试图使用C#以编程方式将行添加到DataGrid中,但似乎无法实现。这就是我到目前为止所拥有的。

// 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++;
    }
}

我一直在谷歌上搜索,最接近添加任何内容的是使用{column = value},但它只是给我带来了一个错误。不过现在真的没有想法了:\

以下是将源绑定到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;

如果您正在使用WPF DataGrid你可以这样绑定它-

dgv.DataContext = employeeData.DefaultView;

XAML

<DataGrid Name="dgv" ItemsSource="{Binding}">
//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();

问候

你试过了吗?:

int n=5; // number of rows you want to add
dataGridView1.Rows.Add(n);
// you can add (names of the rows) if you have them in your array
//for(int i=0; i<n; i++)
//dataGridView1[0, i].Value = array[i];

最新更新