2012-03-16 129 views
0

我有一個silverlight Datagrid從數據庫的存儲過程填充使用雙工WCF服務,該服務每20秒將一組新的ObservableCollection推送到客戶端。現在,我的客戶Datagrid itemsSource被重置爲新的ObservableCollection,每當新的進來。我只是想知道是否有可能直接綁定數據網格的itemsSource到WCF服務ObservableCollection,這樣我就不必每次都重置源,當服務ObservableCollection觸發INotifyPropertyChanged時,UI將自動更新。將WCF ObservableCollection綁定到Silverlight DataGrid

我試過在這篇文章中的解決方案http://forums.silverlight.net/t/216796.aspx/1但它不完全是我想要的,因爲它仍然每次重置itemsSource。

任何幫助將不勝感激。

+0

我認爲你的意思是INotifyCollectionChanged而不是INotifyPropertyChanged?如果您只是每次重新綁定,您可能會改爲綁定到列表。 – RichardOD 2012-03-16 20:59:07

回答

0

創建一個ObservableCollection屬性進行綁定。當您的服務更新時,請清除此集合並從服務中添加列表的所有元素,或者僅添加/刪除需要更改的元素。

+0

感謝您的回覆,我已經試過了,但仍然不是我想要的理想解決方案。首先清除收集並添加新收集仍與重置數據源相同。就「通過並添加/刪除僅需要更改的項目」而言,現在我有一個for循環,它將舊集合與新集合進行比較並更新舊集合,但效率不高。你有沒有更好的方法來做到這一點? – sicccccc 2012-03-16 15:44:17

+0

sicccccc,您需要問問自己,哪種方法更高效,清理集合並添加新項目,或者您提到的for循環效率不高。 – dparker 2012-03-16 17:21:26

+0

嗨dparker,我真正想知道的是,如果有更好的替代解決方案,我可以從服務動態更新我的observablecollection。你有什麼建議嗎?我想避免清理和添加新的集合到我的數據網格源,因爲它會讓我的數據網格失去它的當前視圖。 – sicccccc 2012-03-16 17:42:42

相關問題