ComboBox的DataSource的值可設置為 :實現 IList 接口的對象,如 DataSet 或 Array。默認為 空引用(在 Visual Basic 中為 Nothing)。
但是在實際的項目中可能需要綁定Dictionary作為數據源。此時,將Dictionary<>放到BindingSource中便可以實現間接綁定。
BindingSource 組件有兩種用途:
首先,它通過提供一個間接尋址層、當前項管理、更改通知和其他服務簡化了窗體中控件到數據的綁定。這是通過將 BindingSource 組件附加到數據源,然后將窗體中的控件綁BindingSource 組件來實現的。與數據的所有進一步交互,包括定位、排序、篩選和更新,都通過調用 BindingSource 組件實現。
第二,BindingSource 組件可以作為一個強類型的數據源。通常,基礎數據源的類型通過以下機制之一固定: 使用 Add 方法可將某項添加到 BindingSource 組件中。 將 DataSource 屬性設置為一個列表、單個對象或類型。 這兩種機制都創建一個強類型列表。BindingSource 支持由其 DataSource 和 DataMember 屬性指示的簡單數據綁定和復雜數據綁定。
有關BindingSource的更詳細信息請參考:http://msdn.microsoft.com/zh-cn/library/system.windows.forms.bindingsource(VS.80).aspx 示例代碼如下:
1 Dictionary<string, string> dic = new Dictionary<string, string>(); 2 BindingSource bs = new BindingSource(); 3 bs.DataSource = dic; 4 cbb.DataSource = bs; 5 cbb.DisplayMember = "Value"; 6 cbb.ValueMember = "Key";