me enfrenté al mismo problema, pero yo estaba trabajando con los genéricos. He usado el contexto vinculante del cuadro combinado para deshacerme de esto. (Muy útil cuando no se conoce el tamaño de la lista de enlaces, en su caso son 5 elementos)
En el siguiente código, DisplayBindItem es solo una clase con clave y valor.
List<DisplayBindItem> cust = (from x in _db.m01_customers
where x.m01_customer_type == CustomerType.Member.GetHashCode()
select new DisplayBindItem
{
Key = x.m01_id.ToString(),
Value = x.m01_customer_name
}).ToList();
cmbApprover1.BindingContext = new BindingContext();
cmbApprover1.DataSource = cust;
cmbApprover1.DisplayMember = "Value";
cmbApprover1.ValueMember = "Key";
//This does the trick :)
cmbApprover2.BindingContext = new BindingContext();
cmbApprover2.DataSource = cust ;
cmbApprover2.DisplayMember = "Value";
cmbApprover2.ValueMember = "Key";
La referencia de la clase para usted.
public class DisplayBindItem
{
private string key = string.Empty;
public string Key
{
get { return key; }
set { key = value; }
}
private string value = string.Empty;
public string Value
{
get { return this.value; }
set { this.value = value; }
}
public DisplayBindItem(string k, string val)
{
this.key = k;
this.value = val;
}
public DisplayBindItem()
{ }
}
Por favor, marque como respuesta si esto resuelve su problema.
Thankyou GrandMaster. Resuelto – Alegro
Me alegro de poder ayudar. – GrandMasterFlush
Dependiendo de la cantidad de ComboBoxes y la cantidad de datos en su DataTable, esto podría generar un gran aumento en la huella de memoria de su aplicación debido a la duplicación de los datos. – cadrell0