我有一个名为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是原始值,我如何获得新值?
编辑: 如果用户按下输入但是当他通过单击另一个项目退出单元格时,我得到当前值,我该如何解决?
答案 0 :(得分:1)
add(my datagrid).CommitEdit();在我做出改变之前,另一个优点是这种方式是仅在保存事件上更新我的源对象,所以它应该更快。