绑定到SortedBindingList的C#DataGridView没有显示排序

时间:2011-03-03 19:40:21

标签: c# datagridview bindinglist

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

谢谢

1 个答案:

答案 0 :(得分: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; }
    }

它适用于我。