wpf datagrid在删除行时标识光标在空行上的位置

wpf datagrid在删除行时标识光标在空行上的位置,wpf,vb.net,datagrid,cursor,Wpf,Vb.net,Datagrid,Cursor,我有一个datagrid,绑定到observable collection,它允许操作员通过“canc”键插入新行或删除现有行 基于此社区的其他帖子,删除操作的实现方式如下: XAML: 删除操作正常工作,问题是当光标定位在空白新行上时,我有错误: observable collection.exe中发生类型为“System.InvalidCastException”的未处理异常 在强制转换操作myRec=CType(myGrid.CurrentItem,Diameter)时引发错误 我试图通过

我有一个datagrid,绑定到observable collection,它允许操作员通过“canc”键插入新行或删除现有行

基于此社区的其他帖子,删除操作的实现方式如下:

XAML:

删除操作正常工作,问题是当光标定位在空白新行上时,我有错误:

observable collection.exe中发生类型为“System.InvalidCastException”的未处理异常

在强制转换操作myRec=CType(myGrid.CurrentItem,Diameter)时引发错误

我试图通过检查发现空白行上的光标位置:

myGrid.CurrentItem什么都不是

还有许多其他不同的方式,但我找不到解决办法

有什么建议吗?C#的答案也可以

提前感谢您的帮助

<DataGrid Name="DiameterGrid" ItemsSource="{Binding} AutoGenerateColumns="False" 
CanUserAddRows="True" CanUserDeleteRows="True"  SelectionMode="Single" SelectionUnit="Cell" PreviewKeyDown="RollGrid_PreviewKeyDown">
...
DiameterGrid.ItemsSource = offer.diameters
...

Private Sub RollGrid_PreviewKeyDown(ByVal sender As Object, ByVal e As KeyEventArgs)

Dim myGrid As DataGrid = CType(e.Source, DataGrid)
Dim myRec As Diameter
    If e.Key = Key.Delete Then
        If myGrid.CurrentItem Is Nothing Then
            MsgBox("Invalid record")
        Else
            myRec = CType(myGrid.CurrentItem, Diameter)
            offer.diameters.Remove(myRec)
        End If
    End If
End Sub