title: Multiple Combo Boxes With The Same Data Source (C#)
body: <hr>
  
  <p><strong>UPDATE: This is now resolved, see answer below.</strong></p>
  
  <hr>
  
  <p>On one of my forms (in a Windows Forms application) I have 3 Combo Boxes. These combo boxes need to display a list of prices (In text, with an integer back-end value).</p>
  
  <p>All of these combo boxes are using the same data source (A List&lt;> of type TSPrice, with ValueMember set to Price and DisplayMember set to Description).</p>
  
  <p>My problem is this... Everytime I choose a price option from one of the dropdowns, they ALL change to the same value... Is this something to do with them all being bound to the same data source?</p>
  
  <p>Here is how I am binding them:</p>
  
  <pre><code>var priceList = new List&lt;TSPrice&gt;
                      {
                          new TSPrice(0, ""),
                          new TSPrice(0, "Half Day"),
                          new TSPrice(0, "Full Day"),
                          new TSPrice(0, "1 + Half"),
                          new TSPrice(0, "2 Days"),
                          new TSPrice(0, "Formal Quote Required")
                      };
  
  objInsuredPrice.DataSource = priceList;
  objTPPrice.DataSource = priceList;
  objProvSum.DataSource = priceList;
  
  objInsuredPrice.ValueMember = "Price";
  objTPPrice.ValueMember = "Price";
  objProvSum.ValueMember = "Price";
  
  objInsuredPrice.DisplayMember = "Description";
  objTPPrice.DisplayMember = "Description";
  objProvSum.DisplayMember = "Description";
  
  objInsuredPrice.SelectedIndex = 0;
  objTPPrice.SelectedIndex = 0;
  objProvSum.SelectedIndex = 0;
  
  //objInsuredPrice.DataSource      = objTPPrice.DataSource     = objProvSum.DataSource     = priceList;
  //objInsuredPrice.ValueMember     = objTPPrice.ValueMember    = objProvSum.ValueMember    = "Price";
  //objInsuredPrice.DisplayMember   = objTPPrice.DisplayMember  = objProvSum.DisplayMember  = "Description";
  //objInsuredPrice.SelectedIndex   = objTPPrice.SelectedIndex  = objProvSum.SelectedIndex  = 0;
  </code></pre>
  
  <p>Edit: The issue was that they were all being bound to the same DataSource as confirmed by Saurabh. This is how I solved it.</p>
  
  <pre><code>var priceList = new List&lt;TSPrice&gt;
                      {
                          new TSPrice(0, ""),
                          new TSPrice(1, "Half Day"),
                          new TSPrice(2, "Full Day"),
                          new TSPrice(3, "1 + Half"),
                          new TSPrice(4, "2 Days"),
                          new TSPrice(5, "Formal Quote Required")
                      };
  
  var insuredList = new TSPrice[5];
  var TPList = new TSPrice[5];
  var provList = new TSPrice[5];
  
  priceList.CopyTo(insuredList);
  priceList.CopyTo(TPList);
  priceList.CopyTo(provList);
  
  objInsuredPrice.DataSource = insuredList;
  objTPPrice.DataSource = TPList;
  objProvSum.DataSource = provList;
  
  objInsuredPrice.ValueMember     = objTPPrice.ValueMember    = objProvSum.ValueMember    = "Price";
  objInsuredPrice.DisplayMember   = objTPPrice.DisplayMember  = objProvSum.DisplayMember  = "Description";
  objInsuredPrice.SelectedIndex   = objTPPrice.SelectedIndex  = objProvSum.SelectedIndex  = 0;
  </code></pre>