选择多个导致错误的DataGrid行

时间:2016-08-25 22:16:54

标签: wpf vb.net datagridview datagrid

首先,我会提到它只在EnableRowVirtualization="True"时失败 所以我知道它失败了,我只是不知道如何解决它。

通过选择第一行,按住鼠标选择多行,然后向下滚动,选择所有行。当它离开窗口时,窗口中显示一个新行(当它开始滚动时)就会失败。

这是失败的代码。带错误的语句是以Dim sn =

开头的语句
'for each asset in the datagrid selected items, add to the selected list
For Each item In asset_MasterDataGrid.SelectedItems
    Dim snIndex = asset_MasterDataGrid.Columns.IndexOf(asset_MasterDataGrid.Columns.FirstOrDefault(Function(c) c.Header = "serial num"))
    Dim sn = TryCast(asset_MasterDataGrid.SelectedCells(snIndex).Column.GetCellContent(item), TextBlock).Text 'Error here
    variables.selectedAssets.Add(sn)
Next

我假设索引在滚动时会发生变化,因为它只会加载当前窗口中的内容。任何方式?

错误:     附加信息:对象引用未设置为对象的实例。

1 个答案:

答案 0 :(得分:0)

将此添加到DataGrid修复了问题...

EnableRowVirtualization="True"
EnableColumnVirtualization="True"
VirtualizingStackPanel.VirtualizationMode="Standard"
VirtualizingStackPanel.IsVirtualizing="True"