1

我有一个名为 mainEvents_sql 的数据网格视图,其中包含以下列:

<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 是原始值,我如何获得新值?

编辑:如果用户按回车键,我会得到当前值,但当他通过单击另一个项目退出单元格时却没有,我该如何解决?

4

1 回答 1

1

添加(我的数据网格).CommitEdit(); 在我进行更改之前,另一个优点是这种方式仅在保存事件时更新我的​​源对象,因此它应该更快。

于 2013-05-08T14:41:56.320 回答