3
我有一個.NET 4.0 WPF DataGrid約2000分類項目和一個選定的項目。 DataGrid每隔500毫秒從一個單獨的線程更新,導致項目被添加和/或刪除。每次更新後,物品的集合都會被排序。無聲更新DataGrid項目
問題是,如果所選項目靠近列表的中間位置,則在多次更新後,它通常會從可見區域消失。我正在尋找一種方法來更新DataGrid,而用戶不會注意到它,即將選定的項目保留在可見區域中的相同位置。
到目前爲止,我有2個想法如何解決這個問題,但他們沒有讓我感到自豪:
- 變化,從自動到手動,即在更新過程中把一個文本區域與多個掛起的更新和一個「更新」按鈕。這是不可取的,因爲 我需要重新與我的產品所有者協商。
- 在每次更新前循環播放項目以獲取可見項目的集合(使用this方法),並獲取可見項目中所選項目的相對位置。然後運行更新並使用
ScrollIntoView
將選定項目滾動到初始位置。這個問題在於,程序必須每500毫秒循環所有項目,這對於處理器來說是相當多的工作。
我曾經在WinForms中通過使用TopIndex屬性解決了這個問題,但在WPF中沒有它的等價物。總而言之,關於如何在不需要用戶追蹤感興趣的項目的情況下添加/刪除已排序和頻繁更新的DataGrid中的項目的任何想法都將不勝感激。
+1:我也建議。記住最後一個位置,並在更新後滾動到最後一個已知的位置... – SvenG 2012-01-11 14:42:48
這是輝煌的,正是我一直在尋找的。謝謝你,男士們。 – Pavel 2012-01-12 09:25:46