我有一个wpf应用程序,我正在使用MVVM。我已将datagrid直接绑定到viewmodel以进行更新,添加和删除。这些操作没有按钮。这一切都通过绑定属性很好。除了一个问题。
如果用户使用datagrid中未提交的更改关闭视图,我会尝试在ViewModel的析构函数中捕获它。然后调用ADD或更新方法。但是当
Context.SaveChanges();
被称为我得到一个“句柄未初始化”内部异常。
Datacontext不是Null。我在ViewModels基类中创建了datacontext,并在viewmodels基类析构函数中关闭它。单步执行代码显示尚未调用基类析构函数。
下面是我的堆栈跟踪。
at System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter)
at System.Data.EntityClient.EntityAdapter.Update(IEntityStateManager entityCache)
at System.Data.Objects.ObjectContext.SaveChanges(SaveOptions options)
at System.Data.Objects.ObjectContext.SaveChanges()
at InspectorGeneral.ViewModel.VMItemList.Update(ItemsList obj)
at InspectorGeneral.ViewModel.VMItemList.Modify(ItemsList obj)
at InspectorGeneral.ViewModel.VMItemList.set_SelectedListItem(ItemsList value)
at InspectorGeneral.ViewModel.VMItemList.Finalize()
任何人都可以指出我正确的方向为什么这行代码失败。
问候