2010-01-06 5 views
5

tôi cư GridView.DataSource từ một mô hình EntityFramework:Làm thế nào để làm mới DataSource trên một DataGridView WinForms?

gwTimeLog.DataSource = _entities.TimeLogs; 

Khi một hàng mới được thêm vào _entities, tôi cố gắng cập nhật các lưới điện (cố gắng sử dụng câu lệnh tương tự như trên, thiết lập nó null, sau đó quay lại _entities.TimeLogs, v.v.), nhưng lưới sẽ không cập nhật. Mặc dù _entities.TimeLogs thực sự chứa các hàng mới.

Tôi đang thiếu gì?

Trả lời

5

Câu trả lời là đã GridView kết nối với BindingList chứ không phải là danh sách .

10

OLD TRẢ LỜI: Bạn đã thử gọi GridView.DataBind() chưa?

Woops, tôi nghĩ đây là WebGorms DataGrid.

Nếu bạn đang sử dụng WinForms, bạn có thể muốn xem xét lớp BindingSource. Ràng buộc cho rằng lớp học thay vì thẳng vào danh sách của bạn sẽ cung cấp thông báo cập nhật vv

Các mã sau đây làm việc cho tôi:

 List<Person> names = new List<Person>(); 
     names.Add(new Person(){ 
      FirstName = "Steve", 
      LastName = "Jobs" 
     }); 
     names.Add(new Person() 
     { 
      FirstName = "Bill", 
      LastName = "Gates" 
     }); 

     BindingSource source = new BindingSource(); 
     source.DataSource = names; 
     dataGridView1.DataSource = source; 

     names.Add(new Person() 
     { 
      FirstName = "Steve", 
      LastName = "Balmer" 
     }); 

     source.ResetBindings(false); 
+0

Winforms, không ASP.NET – AngryHacker

+0

Sai lầm của tôi. Đã sửa đổi. – hackerhasid

+0

BindingSource @ MSDN: http://msdn.microsoft.com/en-us/library/system.windows.forms.bindingsource.aspx – hackerhasid

-1
grid.EndEdit(); 
BindingSource.EndEdit(); 
_entities = new dbEntities(); 
firmeBindingSource.DataSource=_entities.TimeLogs; 
+4

Chào mừng bạn đến với stackoverflow! Tốt hơn là cung cấp mô tả ngắn cho mã mẫu để cải thiện độ chính xác của bài đăng :) –

0

này làm việc cho tôi:

dataGridView.DataSource = null; 
dataGridView.DataSource = listOfSomething; 
+0

Mặc dù mã này có thể trả lời câu hỏi, cung cấp thêm ngữ cảnh về lý do và/hoặc cách mã này trả lời câu hỏi cải thiện giá trị lâu dài của nó. Ví dụ, có bất kỳ lý do tại sao thiết lập DataSource để null và sau đó để cái gì khác hoạt động? – ryanyuyu

+0

Mã này gây ra việc cập nhật toàn bộ nội dung lưới dữ liệu, trong khi chỉ thiết lập lại nguồn dữ liệu cho cùng một giá trị - không phải – Netstep