WPF datagridview -在没有按回车键的情况下得到过时的值

本文关键字:情况下 过时 回车 datagridview WPF | 更新日期: 2023-09-27 18:11:26

我有一个名为mainEvents_sql的datagridview,其中包含以下列:

<DataGrid.Columns >
    <DataGridTextColumn Header="Event ID"  Binding="{Binding id}" IsReadOnly="True" />
    <DataGridTextColumn Header="event name" Binding="{Binding name}" Width="*" />
    <DataGridTemplateColumn>
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <Button Content="Update" x:Name="btnUpdate"
                        Click="btnUpdate_Click" CommandParameter="{Binding name}" >
                </Button>
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
 </<DataGrid.Columns >

我正在尝试做一个更新按钮,我得到当前单元格,但它是原始的,而不是新的值,这是我的btnUpdate事件:

private void btnUpdate_Click(object sender, EventArgs e)
{
    DataRowView selectedFile = ((FrameworkElement)sender).DataContext as DataRowView;
    if (mainEvents_sql.SelectedItems.Count > 0){
         String str = Convert.ToString(selectedFile.Row.ItemArray[1]);
         // update the DB with ADO .net
    }
}

str是原始值,如何获得新值?

编辑:我得到当前值,如果用户按下回车,但不是当他通过单击另一个项目退出单元格,我怎么能修复它?

WPF datagridview -在没有按回车键的情况下得到过时的值

add (my datagrid).CommitEdit();在我进行更改之前,这种方式的另一个优点是只在保存事件时更新源对象,因此它应该更快。