我在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.");
}
}
答案 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
希望它有所帮助!