C # DataGridView привязан к SortedBindingList не показывает сортировку - PullRequest
0 голосов
/ 03 марта 2011

Я реализовал класс SortedBindingList, показанный в http://www.martinwilley.com/net/code/forms/sortablebindinglist.html

Затем я успешно добавил к нему объекты того же типа.

У меня есть DataGridView на форме с BindingSource, который установлен в список. Когда я щелкаю заголовок столбца, список сортируется в объекте SortedBindingList, однако это изменение не отражается в DataGridView. Есть ли свойство в DataGridView, которое мне нужно установить, или событие, на которое нужно подписаться?

SortedBindingList<CustomObject> list = new SortedBindingList<CustomObject>();
//Add Objects to list
CustomObjectBindingSource.DataSource = list; 
dataGridViewSource1.DataSource = CustomObjectBindingSource; 

Если я поместил точку останова в код SortedBindingList в методе Compare, где он возвращает результат, я вижу, что список отсортирован надлежащим образом, только DataGridview не показывает список как отсортированный. Что мне не хватает?

Спасибо

1 Ответ

1 голос
/ 03 марта 2011

Редактировать: Извините! по какой-то причине я подумал, что это 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; }
    }

и у меня это работает.

...