我已经实现了http://www.martinwilley.com/net/code/forms/sortablebindinglist.html
中显示的SortedBindingList类然后我成功添加了相同类型的对象。
我在表单上有一个DataGridView,其中BindingSource设置为列表。单击列标题时,列表将在SortedBindingList对象中排序,但该更改不会反映在DataGridView中。我需要设置DataGridView上的属性或我需要订阅的事件吗?
SortedBindingList<CustomObject> list = new SortedBindingList<CustomObject>();
//Add Objects to list
CustomObjectBindingSource.DataSource = list;
dataGridViewSource1.DataSource = CustomObjectBindingSource;
如果我在Compare方法中的SortedBindingList代码中放置一个断点,它返回结果,我可以看到列表已正确排序,只是DataGridview没有将列表显示为已排序。我错过了什么?
谢谢
答案 0 :(得分:1)
在您的情况下,您需要
BindingSource bs = new BindingSource();
bs.DataSource = bs;
dataGridView.DataSource = bs;
编辑2:
我刚刚尝试使用像此一样的SortableBindingList类
SortableBindingList<Person> list = new SortableBindingList<Person>();
list.Add(new Person{Name = "abc",Email = "def"});
list.Add(new Person { Name = "bcd", Email = "aqz" });
dataGridView1.DataSource = list;
的
public class Person
{
public string Name { get; set; }
public string Email { get; set; }
}
它适用于我。