RowEditEnding
事件发生在之前提交或取消行编辑。
您应该做的是在您的 Bruger
类中实现
IEditableObject接口并处理
EndEdit()
方法中的逻辑。
另一个选项是在视图的事件处理程序中显式提交编辑:
private bool _handle = true;
private void OnRowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
if (_handle)
{
_handle = false;
BrugerDataGrid.CommitEdit();
var updatedItem = e.Row.Item as Bruger;
var viewModel = this.DataContext as YourViewModel;
if (updatedItem != null && viewModel != null)
viewModel.RowEditEndingCommand.Execute(updatedItem);
_handle = true;
}
}
将事件参数传递给视图模型会破坏 MVVM 设计模式。在视图的代码隐藏中以编程方式调用命令则不然。