【问题标题】:silverlight domain datasource refreshed only after F5Silverlight 域数据源仅在 F5 后刷新
【发布时间】:2010-10-19 20:02:37
【问题描述】:

我正在使用带有 WCF RIA 服务的 SL4。我有一个用于填充列表框的域数据源。 我已经附加了一个附加到列表项的上下文菜单,我想触发对数据库中字段值的更新。 所以我在尝试

EmployeeDetail employee = (EmployeeDetail)sender;
if(employee.EmployeeDetails!=null)
employee.formEmployee.CommitEdit();
dsEmployee.SubmitChanges();

所以代码可以正常工作,我在数据库中看到了更新,但是列表框尚未刷新。如果我按 F5,那么我会看到 silverlight 应用程序的变化,但是我需要做什么来刷新列表数据源?

【问题讨论】:

    标签: silverlight-4.0 wcf-ria-services


    【解决方案1】:

    这个问题有点模糊。如果您的列表框绑定到 EmployeeDetail 对象的集合,并且它们是实体,则它们将被包装在 IObservableCollection<EmployeeDetail> 中,这意味着只要您的列表在后面的代码中更新,您的列表框就应该更新。但是,如果您确实需要手动刷新,我发现这是可行的:

    IObservableCollection<EmployeeDetail> temp = employeeListBox.ItemSource;
    employeeListBox.ItemSource = null;
    employeeListBox.ItemSource = temp;
    

    【讨论】:

      【解决方案2】:

      如果要手动刷新 DomainDataSource,可以使用 Load() 方法。如果您想在每次成功提交时都这样做,您可以订阅 SubmittedChanges 事件并立即调用加载。

      【讨论】:

        猜你喜欢
        • 2014-04-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多