Silverlight 4.0 silverlight域数据源仅在F5之后刷新

Silverlight 4.0 silverlight域数据源仅在F5之后刷新,silverlight-4.0,wcf-ria-services,Silverlight 4.0,Wcf Ria Services,我将SL4与WCF RIA服务一起使用。我有一个用于填充列表框的域数据源。 我已将上下文菜单附加到要触发数据库中字段值更新的列表项。 所以我正在努力 EmployeeDetail employee = (EmployeeDetail)sender; if(employee.EmployeeDetails!=null) employee.formEmployee.CommitEdit(); dsEmployee.SubmitChanges(); 所以代码工作正常,我在数据库中看到了更新,但是列表

我将SL4与WCF RIA服务一起使用。我有一个用于填充列表框的域数据源。 我已将上下文菜单附加到要触发数据库中字段值更新的列表项。 所以我正在努力

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

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

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

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

如果要手动刷新DomainDataSource,可以使用Load()方法。如果要在每次成功提交时执行此操作,可以订阅SubmittedChanges事件并立即调用加载