2013-03-07 114 views
0

我正在使用Silverlight 5和RIA Services進行數據庫操作。 DataGrid完美地顯示數據。如何刷新DataGrid?

但是,當我刪除記錄並提交更改到數據庫,數據庫更新成功,但DataGrid顯示仍然是舊數據。它不令人耳目一新。

我在谷歌搜索和驚喜,看到沒有簡單的答案,我也驚訝地發現微軟尚未在Silverlight中提供此基本功能。

回答

1

這不是一個好方法,但我通過將DataGrid設置爲null並重新添加數據來解決此問題。

System.Collections.IEnumerable temp = yourGrid.ItemsSource; 
yourGrid.ItemsSource = null; 
yourGrid.ItemsSource = temp; 

我不喜歡這樣做,但它的工作原理和我的目的我沒有注意到任何性能命中。

編輯:我想這可能無法刪除的工作,雖然,但值得一試

+0

什麼,你會說在Silverlight這個丟失的基本特徵。它不會讓你感到驚訝嗎? – user1390378 2013-03-07 20:24:46

+0

不,它確實讓我感到驚訝,但是在我所有在線搜索和試用中,這都是我能夠實現它的唯一方法。我很難相信沒有人認爲refresh()或invalidate()會是一個好主意,但它似乎並不存在。 – Aharpe 2013-03-07 20:45:38

0

您是否嘗試過使用PagedCollectionView作爲的ItemSource?

喜歡的東西:

DataGridMainTopic.ItemsSource = new PagedCollectionView(m_context.EntitySet); 

甚至:

DataGridMainTopic.ItemsSource = new PagedCollectionView(DataGridMainTopic.ItemsSource);