首先,我会提到它只在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
我假设索引在滚动时会发生变化,因为它只会加载当前窗口中的内容。任何方式?
错误: 附加信息:对象引用未设置为对象的实例。
答案 0 :(得分:0)
将此添加到DataGrid修复了问题...
EnableRowVirtualization="True"
EnableColumnVirtualization="True"
VirtualizingStackPanel.VirtualizationMode="Standard"
VirtualizingStackPanel.IsVirtualizing="True"