我正在使用SL4和WCF RIA服务。我有一个域数据源,我用它来填充列表框。 我附加了一个附加到列表项的上下文菜单,我想触发更新数据库中的字段值。 所以我正在尝试
EmployeeDetail employee = (EmployeeDetail)sender;
if(employee.EmployeeDetails!=null)
employee.formEmployee.CommitEdit();
dsEmployee.SubmitChanges();
所以代码工作正常我在数据库中看到了更新,但是列表框还没有刷新。如果我按F5然后我看到silverlight应用程序中的更改,但是我需要做什么才能刷新列表数据源?
答案 0 :(得分:1)
问题有点模糊。如果您的列表框绑定到EmployeeDetail对象的集合,并且它们是实体,它们将被包装在IObservableCollection<EmployeeDetail>
中,这意味着只要在后面的代码中更新列表,就应该更新列表框。但是,如果您确实需要手动刷新,我发现这有效:
IObservableCollection<EmployeeDetail> temp = employeeListBox.ItemSource;
employeeListBox.ItemSource = null;
employeeListBox.ItemSource = temp;
答案 1 :(得分:0)
如果要手动刷新DomainDataSource,可以使用Load()方法。如果您想在每次成功提交时都这样做,您可以订阅SubmittedChanges事件并立即调用加载。