C# 如何刷新数据网格?

C# 如何刷新数据网格?,c#,silverlight,datagrid,refresh,wcf-ria-services,C#,Silverlight,Datagrid,Refresh,Wcf Ria Services,我正在研究Silverlight 5和RIA数据库操作服务。DataGrid完美地显示了数据 但当我删除记录并向数据库提交更改时,数据库更新成功,但DataGrid仍显示旧数据。这并不新鲜 我在谷歌上搜索,惊讶地发现没有简单的答案,我也惊讶地看到微软没有在Silverlight中提供这一基本功能。无论如何这不是一个好方法,但我通过将DataGrid设置为null并重新添加数据来解决这个问题 System.Collections.IEnumerable temp = yourGrid.Items

我正在研究Silverlight 5和RIA数据库操作服务。DataGrid完美地显示了数据

但当我删除记录并向数据库提交更改时,数据库更新成功,但DataGrid仍显示旧数据。这并不新鲜


我在谷歌上搜索,惊讶地发现没有简单的答案,我也惊讶地看到微软没有在Silverlight中提供这一基本功能。

无论如何这不是一个好方法,但我通过将DataGrid设置为null并重新添加数据来解决这个问题

 System.Collections.IEnumerable temp = yourGrid.ItemsSource;
 yourGrid.ItemsSource = null;
 yourGrid.ItemsSource = temp;
我不喜欢这样做,但它的工作和我的目的,我没有注意到任何性能的打击


编辑:我想这可能不适用于删除,但值得一试

您是否尝试使用PagedCollectionView作为ItemSource

比如:

DataGridMainTopic.ItemsSource = new PagedCollectionView(m_context.EntitySet);
甚至:

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

关于silverlight中缺少的这一基本功能,您将怎么说。这不让你感到惊讶吗?不,这确实让我感到惊讶,但在我所有的在线搜索和试用中,这是我让它工作的唯一方法。我很难相信没有人认为刷新()或无效()是一个好主意,但它似乎并不存在。