[英]Set selected rows of Datagrid in WPF
我已經搜索過,似乎無法找到如何為多行執行此操作。
我有一個Datagrid,其items源是Datatable。 用戶可以選擇多行,在數據網格外執行一些操作,然后單擊按鈕來更新數據。 當發生這種情況時,我希望再次選擇數據網格的選定行(在按鈕單擊之前)。 這是我似乎無法弄清楚的部分。
我以為我可以通過存儲當前選定的行索引來實現這一點。 我發現他們可以通過選定的單元格訪問,所以我嘗試了這個:
Dim rows As List(Of Integer) = New List(Of Integer)
For Each cell As DataGridCellInfo In mydatagrid.SelectedCells
rows.Add(mydatagrid.Items.IndexOf(cell.Item))
Next
(...code to retrieve data...)
For Each item As Integer In rows
mydatagrid.SelectedIndex = item
Next
但SelectedIndex只有一個值,並且只選擇了最后一個先前選擇的行。
我搜索了一些,並嘗試自己存儲選定的項目,但這不起作用,沒有選擇任何東西:
Dim rows As List(Of Object) = New List(Of Object)
rows.AddRange(mydatagrid.SelectedItems)
(...code to retrieve data...)
For Each item As Object In rows
mydatagrid.SelectedItems.Add(item)
Next
我想我錯過了一些東西:(謝謝你的幫助。
你幾乎得到了它。 您存儲了選定的行索引,但DataGrid
希望您自己選擇項目:
mydatagrid.SelectedItems.Clear()
For Each item As Integer In rows
If (item < mydatagrid.Items.Count) Then
mydatagrid.SelectedItems.Add(mydatagrid.Items.GetItemAt(item))
End If
Next
同樣,如果要恢復單元格選擇,則應存儲DataGridCellInfos
,然后使用SelectedCells
集合。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.