WPF DataGrid的等效WinForm DataGridView代码

时间:2017-02-24 09:42:29

标签: c# wpf winforms datagridview datagrid

我在DataGrid中有n行的数据,而DataGrid是ReadOnly。现在我的目标是当我选择任何一行或多行然后按EDIT按钮,然后所有选定的行只变为ReadOnly = false。所以我想编辑选定行中的一些数据。在此之后,当我按下更新按钮时,只使用EntityFramework更新选定的行。 我在WinForm DataGridView中完成了这个任务。现在我想在WPF DataGrid中做同样的事情。

private void editCust_Click(object sender, EventArgs e)
    {
        if (dataGridView1.SelectedRows.Count > 0)
        {
            foreach (DataGridViewRow item in dataGridView1.SelectedRows)
            {
                for (int i = 1; i <= 3; i++)
                {
                    item.Cells[i].ReadOnly = false;
                }
            }
        }

        else
        {
            MessageBox.Show("No Row Is Selected To Edit.");
        }
    }

    private void updateCust_Click(object sender, EventArgs e)
    {
        if (dataGridView1.SelectedRows.Count > 0)
        {
            foreach (DataGridViewRow item in dataGridView1.SelectedRows)
            {
                cutable.Customer_Name = (string)item.Cells[1].Value;
                cutable.Counter = int.Parse(Convert.ToString(item.Cells[2].Value));
                cutable.Buying_Cost = float.Parse(Convert.ToString(item.Cells[3].Value));

                for (int i = 1; i <= 3; i++)
                {
                    item.Cells[i].ReadOnly = true;
                }
            }

            db.SaveChanges();
            MessageBox.Show("Record Is Update.");
        }

        else
        {
            MessageBox.Show("No Row Is Selected To Update.");
        }
    }

1 个答案:

答案 0 :(得分:0)

首先将DataGridView转换为DataTable,然后转换为DataGrid

对于DataGridView到DataTable

使用此:

DataTable myDataTable=(DataTable)(myDataGridView.DataSource);

如需更多参考,请浏览DataGridView to DataTable

现在DataTable到DataGrid

使用此:

myDataGrid.ItemsSource=myDataTable.DefaultView;
myDataGrid.AutoGenerateColumns = true;
myDataGrid.CanUserAddRows = false;

如需更多参考,请浏览DataTable to DataGrid

评论任何查询

<强>更新

尝试创建自己的代码和逻辑,不依赖于某人给出的直接解决方案。

我在StackOverflow [Solved]中找到了类似的问题。

请参阅此问题how to edit select row in datagrid in wpf

希望它有所帮助!