我正在制作一个WPF应用程序,但目前在使用DataGrid中的选定项从ObservableCollection中删除项时遇到了问题。DataGrid使用ObservableCollection作为其ItemsSource。我做了一些看起来很有用的东西,直到我开始对列进行排序:
Private Sub confirmDelete()
Dim userAnswer As MessageBoxResult
userAnswer = MessageBox.Show("Are you sure?", "Delete Selected Items?", MessageBoxButton.YesNo)
If userAnswer = MessageBoxResult.Yes Then
Dim index As Integer
For i As Integer = grdReadings.SelectedItems.Count - 1 To 0 Step -1 'step backwards through list
index = grdReadings.Items.IndexOf(grdReadings.SelectedItems(i))
testDataList.RemoveAt(index)
Next
End If
End Sub因此,如果我从不按DataGrid中的任何列进行排序,那么这种方法就可以很好地工作,但是一旦我以与添加项不同的顺序对DataGrid进行排序,DataGrid中选定项的索引就与ObservableCollection中这些项的索引不匹配。是否有更好/更简单的方法来使用用户在ObservableCollection中选择的项目从DataGrid中删除项目?
发布于 2015-08-06 23:42:07
您可以直接删除项目,而不是查找索引
Private Sub confirmDelete()
Dim userAnswer As MessageBoxResult
userAnswer = MessageBox.Show("Are you sure?", "Delete Selected Items?", MessageBoxButton.YesNo)
If userAnswer = MessageBoxResult.Yes Then
For each item in grdReadings.SelectedItems
testDataList.Remove(item)
Next
End If
End Sub发布于 2015-08-07 02:07:09
下面是我所做的:
Dim itemsToRemove As New List(Of CCReading)
For Each item In grdReadings.SelectedItems
itemsToRemove.Add(item)
Next
For Each item In itemsToRemove
testDataList.Remove(item)
Next
itemsToRemove.Clear()https://stackoverflow.com/questions/31859948
复制相似问题