我正在使用Silverlight 5和RIA Services进行数据库操作。 DataGrid完美地显示数据。如何刷新DataGrid?
但是,当我删除记录并提交更改到数据库,数据库更新成功,但DataGrid显示仍然是旧数据。它不令人耳目一新。
我在谷歌搜索和惊喜,看到没有简单的答案,我也惊讶地发现微软尚未在Silverlight中提供此基本功能。
我正在使用Silverlight 5和RIA Services进行数据库操作。 DataGrid完美地显示数据。如何刷新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这个丢失的基本特征。它不会让你感到惊讶吗? – user1390378 2013-03-07 20:24:46
不,它确实让我感到惊讶,但是在我所有在线搜索和试用中,这都是我能够实现它的唯一方法。我很难相信没有人认为refresh()或invalidate()会是一个好主意,但它似乎并不存在。 – Aharpe 2013-03-07 20:45:38