2014-09-01 82 views
2

我正在使用可以選擇多個記錄的WPF數據網格&可以對它進行排序(通過單擊列標題)。在排序後在數據網格中保留選定的行

我希望能夠保留選定的行排序後。

請注意,我可以保留選定行,問題就出現了,當行保留超過1

例如說:我在選擇行與指數2 & 3,然後排序特定列。排序功能後,我希望能夠保留選定的行(舊索引-2,3)&新索引 - 4,5。因此,排序後,必須選擇第5行。

我的數據網格的項目源是ListCollectionView類型的,我需要在需要排序時添加排序描述。

事情我已經嘗試:

嘗試設置selectedItems屬性。由於它是隻讀屬性,因此不起作用。

嘗試設置DataGridRow(s)的IsSelected屬性不起作用。雖然我可以看到所選行的IsSelected屬性設置爲true,但在屏幕上我沒有看到突出顯示的記錄。

這一個可能是模糊的,但我多次設置選定的索引,但這隻會突出顯示最後選定索引的記錄。

每次排序後,最後選中的記錄都會高亮顯示。有沒有辦法保留選定的行?

編輯:

我現在可以設置使用Datagrid.SelectedItems.Add(dataGridRow)或設置在DataGrid行IsSelected屬性DataGrid的選擇項。

問題是雖然所選項目存在,但它們在屏幕上不突出顯示。我怎樣才能讓行突出顯示?

例如:如果選擇了3條記錄,&在排序前高亮顯示,排序後所有記錄被選中(在代碼中輸入斷點&),但只有一條記錄被突出顯示。

回答

0

可以通過將行的IsSelected屬性設置爲true來設置數據網格的選定項目。

或使用SelectedItems.Add()方法添加選定的項目。

我在做同樣的事情,但仍然看不到所選的項目,因爲在選擇的項目被修改的代碼中還有另一個地方。

以上解決方案經過測試&的作品。

相關問題