I w obliczu tego samego problemu, ale ja pracowałem z rodzajowych. Użyłem kontekstu powiązania pola kombi, aby się tego pozbyć. (Bardzo przydatne, gdy nie znasz rozmiaru listy powiązań - w Twoim przypadku jest to 5 pozycji)
W poniższym kodzie DisplayBindItem to tylko klasa z kluczem i wartością.
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";
Klasę dla ciebie odniesienia.
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()
{ }
}
Proszę oznaczyć jako odpowiedź, jeśli rozwiąże to problem.
Dziękuję GrandMaster. Rozwiązany. – Alegro
Cieszę się, że mogę pomóc. – GrandMasterFlush
W zależności od liczby elementów składowych i liczby danych w tabeli DataTable może to doprowadzić do znacznego wzrostu śladu pamięci aplikacji spowodowanego duplikowaniem danych. – cadrell0