2
我有一個關於使用數據綁定和多個組合框的問題。爲什麼選定的項目在同一數據源綁定的多個組合框之間同步?
我有一個管理器類來處理我想綁定的數據。它看起來像這樣:
public static class SupplierManager
{
private static List<Classes.Supplier> _suppliers = null;
private static BindingSource _bindingSource = null;
public static void Add(Classes.Supplier supplier)
{
if (_suppliers == null)
{
_suppliers = new List<Classes.Supplier>();
_suppliers.Add(new Classes.Supplier());
}
if (_bindingSource == null)
{
_bindingSource = new BindingSource(_suppliers, null);
}
_bindingSource.Add(supplier);
_suppliers.Sort();
}
public static void Remove(Classes.Supplier supplier)
{
_bindingSource.Remove(supplier);
_suppliers.Sort();
}
public static BindingSource BindingSource
{
get
{
if (_suppliers == null)
{
_suppliers = new List<Classes.Supplier>();
_suppliers.Add(new Classes.Supplier());
}
if (_bindingSource == null)
{
_bindingSource = new BindingSource(_suppliers, null);
}
return _bindingSource;
}
}
}
我不知道這是否是要做到這一點(所有輸入歡迎!)正確的方式,但它的伎倆對我,但我的問題是,當我有2個或更多的組合框連接到同一個BindingSource,它們同步,因此當我在combobox1中選擇一個項目時,它也會在combobox2中被選中。
我想要的是組合框中有相同的數據,並且如果BindingSource更改而不需要刷新特定組合框(它所做的),但所選項目不應該同步,它們會更新。
我的數據源設置爲這樣的組合框:
public ReceiptOUT()
{
InitializeComponent();
this.cmbBxSuppliers.DataSource = Managers.SupplierManager.BindingSource;
this.cmbBxSuppliers.BindingContext = new BindingContext();
this.cmbBxSuppliers.SelectedIndex = -1;
}
所有幫助(即使它沒有涉及到這個問題,但也對代碼的其餘部分)歡迎!
請發表您的解決方案作爲一個答案。 – ChrisF
我會盡快...我必須先等待8小時(2小時左右);)我必須確保我在這裏更積極一些,所以我的代表上升。 – Webslave