【问题标题】: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 事件并立即调用加载。