2011-05-18 86 views
4

您好我有datagridview名称data1,并绑定数据到data1从数据库,当我点击列标题排序数据,,一些错误显示..这样的错误“DataGridView控件必须是绑定到IBindingList对象进行排序“。以编程方式排序datagridview错误

这是代码的样本..

SomeDataContext db = new SomeDataContext(); 

data1.DataSource = db.data.ToList(); 


private void data1_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) 
{  
     dataGridView1.Sort(dataGridView1.Columns[e.ColumnIndex],     
     ListSortDirection.Ascending);  
} 

任何解决方案家伙?在此先感谢

回答

4

您需要使用SortableBindingList类:

SortableBindingList<person> persons = new SortableBindingList<person>(); 
persons.Add(new Person(1, "timvw", new DateTime(1980, 04, 30))); 
persons.Add(new Person(2, "John Doe", DateTime.Now)); 

this.dataGridView1.AutoGenerateColumns = false; 
this.ColumnId.DataPropertyName = "Id"; 
this.ColumnName.DataPropertyName = "Name"; 
this.ColumnBirthday.DataPropertyName = "Birthday"; 
this.dataGridView1.DataSource = persons; 
+0

喜乔Tuskan ..这个错误显示当我使用绑定源“DataGridView控件无法排序,如果它绑定到不支持排序的IBindingList。”..请帮助,任何解决方案? – 2011-05-18 16:47:50

+3

我需要在以下结构中实现一个列表:http://www.timvw.be/2007/02/22/presenting-the-sortablebindinglistt/ – Joe 2011-05-18 16:58:08