wpf datagrid标识删除行

时间:2015-11-29 15:41:58

标签: wpf vb.net datagrid cursor

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

根据此社区的其他帖子,删除操作已经以这种方式实现:

XAML:

<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

删除操作正常,问题是当光标位于空行新行时,我有错误:

observable collection.exe中出现未处理的“System.InvalidCastException”类型异常

在演员操作myRec = CType(myGrid.CurrentItem,Diameter)上引发错误。

我尝试使用check:

检测光标在空白行上的位置

myGrid.CurrentItem Nothing

以其他许多方式,但我找不到解决方案。

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

提前感谢您的帮助

0 个答案:

没有答案