【问题标题】:How to refresh DataGrid?如何刷新数据网格?
【发布时间】:2013-02-23 03:05:41
【问题描述】:

我正在开发用于数据库操作的 Silverlight 5 和 RIA 服务。 DataGrid 完美显示数据。

但是当我删除一条记录并将更改提交到数据库时,数据库更新成功,但 DataGrid 显示仍然旧数据。它并不令人耳目一新。

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

【问题讨论】:

    标签: c# silverlight datagrid refresh wcf-ria-services


    【解决方案1】:

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

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

    我不喜欢这样做,但它确实有效,而且就我的目的而言,我没有注意到任何性能损失。

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

    【讨论】:

    • 您将如何评价silverlight 中缺少的这个基本功能。你不觉得惊讶吗?
    • 不,这确实让我感到惊讶,但在我所有的在线搜索和试验中,这是我可以让它工作的唯一方法。我很难相信没有人认为 refresh() 或 invalidate() 会是一个好主意,但它似乎并不存在。
    【解决方案2】:

    您是否尝试过使用 PagedCollectionView 作为 ItemSource?

    类似:

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

    甚至:

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

    【讨论】:

      猜你喜欢
      • 2011-07-26
      • 2012-04-19
      • 1970-01-01
      • 2017-02-24
      • 2014-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-04
      相关资源
      最近更新 更多