2010-05-09 51 views
10

Tôi muốn gắn một ListView với một số List<string>. Tôi đang sử dụng mã này:Có thể liên kết một Danh sách với một ListView trong WinForms không?

somelistview.DataBindings.Add ("Items", someclass, "SomeList"); 

Tôi nhận được ngoại lệ này: Không thể liên kết với thuộc tính 'Mặt hàng' vì nó là chỉ đọc.

Tôi không biết phải liên kết như thế nào nếu thuộc tính Mục là chỉ đọc?

Trả lời

11

Lớp ListView không hỗ trợ ràng buộc thời gian thiết kế. Một cách khác được trình bày trong this project.

0

Ngoài ra, bạn có thể sử dụng DataGridView nếu bạn muốn dữ liệu ràng buộc. Sử dụng BindingList và BindingSource sẽ cập nhật DataGrid của bạn khi mục mới được thêm vào danh sách của bạn.

var barcodeContract = new BarcodeContract { Barcode = barcodeTxt.Text, Currency = currencyTxt.Text, Price = priceTxt.Text }; 

     list.Add(barcodeContract); 
     var bindingList = new BindingList<BarcodeContract>(list); 
     var source = new BindingSource(bindingList, null); 
     dataGrid.DataSource = source; 

Và mô hình dữ liệu lớp

public class BarcodeContract 
{ 
    public string Barcode { get; set; } 
    public string Price { get; set; } 
    public string Currency { get; set; } 
} 
+0

Xin chào @ ozgur, một câu hỏi về mã của bạn. Nơi nào bạn xác định tiêu đề trong datagrid, tôi có nghĩa là, làm thế nào để bạn chỉ ra rằng column1 là mã vạch, cột 2 là giá và như vậy? – Apalabrados

Các vấn đề liên quan