2013-03-07 63 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);