0

我已经实现了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 没有将列表显示为已排序。我错过了什么?

谢谢

4

1 回答 1

1

编辑:对不起!出于某种原因,我认为它是 asp.net

在你的情况下,你需要

   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; }
    }

它对我有用。

于 2011-03-03T19:42:10.873 回答