簡體   English   中英

在WPF中設置選定的Datagrid行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM