2009-06-16 64 views
1

我有一個列表驗證對象 - 驗證。綁定到來自另一個綁定列表的項目的屬性

public class Validation 
{ 
     public IList<KeyValuePair<string, string>> Arguments 
     { //(...) } 
} 

在一個形式中,綁定到驗證列表,並結合到參數從驗證列表當前驗證列表一個DataGridView的列表。我允許用戶在對話窗口中編輯選定的驗證對象。用戶可以修改參數集合。關閉窗口後,應刷新DataGridView中顯示的項目。他們不。另外,如果參數列表在編輯後爲空,則會引發IndexOutOfRangeException。

我該如何讓它工作?

回答

0

有幾個重要的數據綁定接口;特別是IBindingList,它具有DataGridView可以偵聽的ListChanged事件。

是否可以將具體列表更改爲BindingList<T>?這應該給你免費的大部分?您不需要更改退貨類型,因爲BindingList<T> : IList<T>DataGridView只知道實際的對象(它並不在乎您稱之爲IList<T>)。

其他務實的選擇就是重新設置數據綁定在DataGridView - 也許設置DataSourcenull然後回:

object tmp = grid.DataSource; 
grid.DataSource = null; 
grid.DataSource = tmp; // low-tech data-source reset 
+0

呵呵呵,你是我一天中的英雄;)感謝 – agnieszka 2009-06-16 10:45:40

相關問題