tôi phải đối mặt với cùng một vấn đề nhưng tôi đã làm việc với Generics. Tôi đã sử dụng bối cảnh ràng buộc của hộp kết hợp để loại bỏ điều này. (Rất hữu ích khi bạn không biết kích thước của danh sách ràng buộc - trong trường hợp của bạn là 5 mục)
Trong mã bên dưới, DisplayBindItem chỉ là một lớp có Khóa và Giá trị.
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";
Lớp học để bạn tham khảo.
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()
{ }
}
Hãy đánh dấu câu trả lời nếu cách này giải quyết được sự cố của bạn.
Thankyou GrandMaster. Giải quyết. – Alegro
Vui vì tôi có thể giúp. – GrandMasterFlush
Tùy thuộc vào số lượng ComboBox và dữ liệu trong DataTable của bạn, điều này có thể dẫn đến sự gia tăng lớn trong bộ nhớ của ứng dụng do trùng lặp dữ liệu. – cadrell0