C# 一旦WPF DataGrid单元格被编辑,MySQL将立即更新

C# 一旦WPF DataGrid单元格被编辑,MySQL将立即更新,c#,mysql,wpf,datagrid,C#,Mysql,Wpf,Datagrid,我有一个从MySQL查询生成的DataGrid。我希望能够通过修改DataGrid直接编辑数据库。基本上,我需要的是在用户编辑完单元格后生成如下字符串: 伪代码: “更新当前\u表设置当前\u列\u名称=新的\u单元格\u值,其中id=已编辑行的隐藏第一个单元格中的编号” 实现这一目标最简单的方法是什么 我尝试查看DataGrid属性和事件,但到目前为止,我找不到任何“CellEditEnded”事件,也找不到如何获取行的第一个单元格中的新值或id 编辑: 好的,我已经取得了一些进展,我现在能够

我有一个从MySQL查询生成的DataGrid。我希望能够通过修改DataGrid直接编辑数据库。基本上,我需要的是在用户编辑完单元格后生成如下字符串:

伪代码:

“更新当前\u表设置当前\u列\u名称=新的\u单元格\u值,其中id=已编辑行的隐藏第一个单元格中的编号”

实现这一目标最简单的方法是什么

我尝试查看DataGrid属性和事件,但到目前为止,我找不到任何“CellEditEnded”事件,也找不到如何获取行的第一个单元格中的新值或id

编辑: 好的,我已经取得了一些进展,我现在能够获取id和列名,但问题是我无法获取新的单元格值。我认为问题在于此代码在CellEditEnding事件中触发,因此更改尚未提交。我怎样才能解决这个问题

DataRowView dataRow = (DataRowView)gameDatagrid.SelectedItem;
int index = gameDatagrid.CurrentCell.Column.DisplayIndex;
string columnName = gameDatagrid.CurrentCell.Column.Header.ToString();
string cellValue = dataRow.Row.ItemArray[index].ToString();
string id = dataRow.Row.ItemArray[0].ToString();
MessageBox.Show(id + " : " + columnName + " : " + cellValue);

多亏了一个有用的评论,我才得以解决这个问题。完整代码如下:

    private void gameDatagrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
    {
        TextBox t = e.EditingElement as TextBox;
        DataRowView dataRow = (DataRowView)gameDatagrid.SelectedItem;
        int index = gameDatagrid.CurrentCell.Column.DisplayIndex;
        string columnName = gameDatagrid.CurrentCell.Column.Header.ToString();
        string newValue = t.Text;
        int id = (int)dataRow.Row.ItemArray[0];
        string query = "UPDATE table_name SET " + columnName + "=\"" + newValue + "\" WHERE id=" + id;
    }

现在看看所有的东西都很有魅力,谢谢Jossef!请给我的问题贴一个答案