2009-05-22 29 views
5

tôi đang cố gắng để ràng buộc một DataGridView vào một danh sách, nơi MyObject trông giống nhưDataGridView Binding vào một List <>, một số đặc tính nên không được hiển thị

class MyObject 
{ 
    public string Property1 { get; set; } 
    public string Property2 { get; set; } 
} 

//List<MyObject> objects; 
grid.Columns[0].DataPropertyName = "Property1"; 
grid.DataSource = objects; 

tôi muốn chỉ có một tài sản để được hiển thị, nhưng thay vào đó Tôi nhận được một cột khác được thêm vào DataGridView của tôi nơi Property2 cũng được hiển thị. Làm thế nào tôi có thể ngăn chặn nó được thêm vào?

Trả lời

9

Nếu bạn không bao giờ muốn rằng bất động sản hiển thị:

class MyObject 
{ 
    public string Property1 { get; set; } 
    [Browsable(false)] 
    public string Property2 { get; set; } 
} 

Nếu không, như đã nói - thiết AutoGenerateColumns false và thêm chúng bằng tay.

2

Có vẻ như bạn có thuộc tính AutoGenerateColumns của bộ điều khiển DataGridView được đặt thành True. Bạn có thể đặt nó thành False hoặc sử dụng phương thức .Columns.Remove để xóa cột bạn không muốn xem.

0

Tôi tin rằng bạn cần phải thiết lập các cột theo cách thủ công, như Henk đã nói. Tuy nhiên, bạn có thể muốn đặt nhiều thuộc tính hơn trong ví dụ của mình. Đây là những gì tôi đã làm trong một dự án:

DataGridView dataGridView = new DataGridView(); 
dataGridView.AutoGenerateColumns = false; 

DataGridViewColumn columnA = new DataGridViewTextBoxColumn(); 
columnA.DataPropertyName = "propertyA"; 
columnA.HeaderText = "Column A"; 
columnA.Name = "columnA"; 

DataGridViewColumn columnB = new DataGridViewTextBoxColumn(); 
columnB.DataPropertyName = "propertyB"; 
columnB.HeaderText = "Column B"; 
columnB.Name = "columnB"; 

dataGridView.Columns.Clear(); 
dataGridView.Columns.Add(columnA); 
dataGridView.Columns.Add(columnB); 
dataGridView.AutoResizeColumns(); 

Tôi tin rằng các công trình trên. Nếu bạn nhận được kiểm tra ngoại lệ lạ để đảm bảo rằng các cột/ô có kiểu ô mặc định được xác định.

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