đang ràng buộc của bạn Chưa hoàn thành. Hãy thử điều này:
BindingSource bsCustomers = new BindingSource();
bsCustomers.DataSource = _customers;
comboBox.DataBindings.Add(
new System.Windows.Forms.Binding("SelectedValue", bsCustomers, "id", true));
comboBox.DataSource = bsCustomers;
comboBox.DisplayMember = "name";
comboBox.ValueMember = "id";
Trong hầu hết các trường hợp, bạn có thể hoàn thành nhiệm vụ này trong thiết kế, thay vì làm nó trong mã.
Bắt đầu bằng cách thêm nguồn dữ liệu vào cửa sổ "Nguồn dữ liệu" trong Visual Studio. Mở nó từ menu Chế độ xem> Cửa sổ khác> Nguồn dữ liệu. Thêm nguồn dữ liệu đối tượng của loại Customer
. Trong Nguồn dữ liệu, bạn sẽ thấy thuộc tính của khách hàng. Thông qua một nhấp chuột phải vào các thuộc tính, bạn có thể thay đổi điều khiển mặc định liên quan đến nó.
Bây giờ bạn có thể chỉ cần kéo thuộc tính từ cửa sổ Nguồn dữ liệu vào biểu mẫu của bạn. Visual Studio tự động thêm A BindingSource
và một thành phần BindingNavigator
vào biểu mẫu của bạn khi bạn thả điều khiển đầu tiên. Các BindingNavigator
là tùy chọn và bạn có thể loại bỏ nó một cách an toàn, nếu bạn không cần nó. Visual Studio cũng làm tất cả các dây-up. Bạn có thể tinh chỉnh nó thông qua cửa sổ thuộc tính. Đôi khi điều này là bắt buộc đối với hộp tổ hợp.
Chỉ có một điều phải làm trong mã của bạn: Gán một nguồn dữ liệu thực tế với nguồn ràng buộc:
customerBindingSource.DataSource = _customers;
Nguồn
2012-04-04 17:17:17
comboBox.Items [n] .Selected = true; doesnt làm việc cho tôi (có thể là một vấn đề CF) nhưng SelectedValue nào, tôi đã thử nó trước nhưng với giá trị sai. Cảm ơn. – mdc
Tôi muốn lưu ý rằng đối với tôi để có được điều này để làm việc tôi đã phải xác định các lĩnh vực đó là thành viên giá trị, không chỉ là đối tượng. Vì vậy, trong trường hợp khách hàng ở trên, tôi đã phải sử dụng 'comboBox.SelectedValue = customerToSelect.id'. – AdamMc331