2011-08-18 62 views
3

我有一个wpf应用程序,我正在使用MVVM。我已经将数据网格直接绑定到视图模型以进行更新,添加和删除。这些操作没有按钮。它通过绑定属性都可以很好地工作。除了一个问题。手柄未初始化错误

如果用户关闭数据网格中未提交更改的视图,我尝试在ViewModel的描述中捕获此数据。然后调用ADD或更新方法。但是当

​​3210

被称为我得到一个“处理未初始化”内部异常。

Datacontext不为空。我在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() 

任何人都可以指向正确的方向,为什么这行代码失败。

问候

回答

3

我试图在Finalize执行数据库调用,也得到了同样的错误。

把它从Finalize中取出是唯一的选择。

+0

我可以看到为什么这会是一个问题,但是你知道有没有深入解释数据库调用完成时会发生什么? – kenjara