我遇到的类似的问题。我的原因是,一个是因为用户已经选中了DataGrid的最后一条数据,这样当DataGrid的数据删除一条时就会出错。另一个是,程序中,用程序选中了一行,但是当数据变化时,为了保证DataGrid Update时能保持原来的选中的行的状态,所以按照程序中的选中的行来判断,但是却忽略了数据删除时的问题。希望对你有所帮助。