2011-06-08 38 views
0

在我的silverlight應用程序中,我使用了一個datagrid。該項目源是ObservableCollection < Customer> Customer對象實現INotifyPropertyChanged。問題是,從第二秒到第二天,我更新了所有客戶流逝的時間。如果我在網格中有超過5000條記錄,這是性能問題。Silverlight datagrid Observable集合發送通知列表

你知不知道是否有可能有在Silverlight這樣的:

_grid.SuspendLayout(); 
//update model 
_grid.ResumeLayout(); 

...或暫停綁定。

因爲我只更新經過時間列我想只更新該列...不是整個網格。 datagrid是否支持某些事件來接收更新列表?在這種情況下,也許我可以考慮實現我的自定義ObservableCollection。

+1

嗨。我創建了一個小例子來重塑你的問題。我創建了一個小客戶(只有名字和姓氏),第二個計時器每秒鐘通過一個分派器計時器更新。所有屬性拋出proeprties改變事件。 DataGrid具有AutoGenerateColumns和一個具有6000個客戶的ObservableCollection作爲ItemsSource。如果我更新秒,只有秒的吸氣者被調用,沒有其他吸氣者...所以只有秒列被更新。我的網格在一段時間後變得有點慢,但這可能是因爲我爲每個對象創建了一個Dispatcher ...你能提供更多的代碼嗎? – TerenceJackson 2011-06-08 19:28:30

回答

0

您是否嘗試過使用OneTime綁定模式而不是TwoWay?如果您使用OneTime,則可以決定通過保存對上下文的更改來手動刷新網格。您還可以使用grid.BeginEdit()grid.CommitEdit()來控制編輯。