0

http://www.martinwilley.com/net/code/forms/sortablebindinglist.htmlに示されている SortedBindingList クラスを実装しました。

その後、同じタイプのオブジェクトを正常に追加しました。

リストに設定された BindingSource を持つフォームに DataGridView があります。列ヘッダーをクリックすると、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 に答える