2010-10-19 28 views
0

我正在使用帶有WCF RIA服務的SL4。我有一個域數據源,我用它來填充列表框。 我已經附加了一個上下文菜單,附加到我想要觸發對數據庫中字段值的更新的列表項。 所以我要把silverlight域數據源僅在F5後刷新

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

因此,代碼工作正常我看到在數據庫中更新,但列表框還沒有被刷新。如果我按下F5,那麼我會看到silverlight應用程序中的更改,但是我需要如何才能刷新列表數據源?

回答

1

這個問題有點含糊。如果您的列表框綁定到一組EmployeeDetail對象,並且它們是實體,則它們將被封裝在IObservableCollection<EmployeeDetail>中,這意味着您的列表框應該在代碼更新後更新。但是,如果你真的需要手動刷新,我覺得這工作:

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

如果你想手動刷新DomainDataSource,您可以使用load()方法。如果您想在每次成功提交時執行此操作,則可以訂閱SubmittedChanges事件並立即調用加載。