我使用WPF DataGrid組件從.NET框架4,它被綁定到一個線程安全的觀察的集合,我發現在這裏:http://www.deanchalk.me.uk/post/Thread-Safe-Dispatcher-Safe-Observable-Collection-for-WPF.aspx慢WPF 4的Datagrid刷新
該方案是一個系統管理工具,它坪每個IP地址在一個範圍內,如果有響應,它會在集合中創建一個對象,並帶有計算機的一些細節。
我遇到的問題是性能不佳。最初,我只是更新了Collection,並讓DataGrid獲取了更改。這導致DataGrid控件不刷新並顯示數據除非我滾動的問題。
所以我增加了一個定時器來調用網格刷新方法,定時器每隔750ms進行一次滴答。這個工作出色,直到我意識到程序UI完全沒有響應,而定時器啓用,它正在掃描。
沒有定時器,性能是可以接受的,沒有它,它是可怕的。我已經嘗試了超時期限(高達2000毫秒)的幾個值沒有任何運氣,也確保我的列是固定寬度(我讀了自動生成的列和寬度可能會導致性能問題)。
網格中的行數大約爲300 - 400,有5列,所以它不是一個巨大的網格。
有沒有人有任何建議,我可以如何在不犧牲性能的情況下及時更新網格後面的集合?
謝謝@haris,我已經在我的類中實現了INotifyPropertyChanged接口,現在網格正在更新而不需要刷新。 – leinad13 2011-05-11 14:18:37
INotifyPropertyChanged是一件好事!謝謝! – 2011-11-21 04:34:49