【问题标题】:Selecting multiple DataGrid rows causing error选择多个 DataGrid 行导致错误
【发布时间】:2016-08-25 22:16:54
【问题描述】:

首先,我会提到它仅在 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

我假设索引在滚动时会发生变化,因为它只加载当前窗口中的内容。有什么办法吗?

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

【问题讨论】:

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

标签: wpf vb.net datagridview datagrid


【解决方案1】:

将此添加到 DataGrid 解决了问题...

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 2013-04-08
    • 2011-08-12
    相关资源
    最近更新 更多