2013-11-28 49 views
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; 
    } 

所有幫助(即使它沒有涉及到這個問題,但也對代碼的其餘部分)歡迎!

+0

請發表您的解決方案作爲一個答案。 – ChrisF

+0

我會盡快...我必須先等待8小時(2小時左右);)我必須確保我在這裏更積極一些,所以我的代表上升。 – Webslave

回答

0

通過這樣做......那麼容易我一定是瞎了眼解決它;)

public static BindingSource BindingSource 
{ 
    get 
    { 
     if (_suppliers == null) 
     { 
      _suppliers = new BindingList<Classes.Supplier>(); 
     } 

     return new BindingSource(_suppliers, null); 
    } 
} 

,改變了List<Classes.Supplier> _suppliersBindingList<Classes.Supplier> _suppliers

相關問題