2011-11-04 17 views
7

DataGridViewで並べ替えを実行しようとしています。列ヘッダーをクリックするとソートが自動的に行われるはずですが、機能していません。私は間違って何をしていますか?あなたは、ソート実装し、リストにバインドする必要がDataGridViewでSortModeを使用する方法

private void LoadDummyData() 
{ 
    List<AddressBookDummy> list = new List<AddressBookDummy>(); 
    list.Add(new AddressBookDummy { Name = "Newman, Alfred", Type = "CAR" }); 
    list.Add(new AddressBookDummy { Name = "Skywalker, Luke", Type = "SUP" }); 
    list.Add(new AddressBookDummy { Name = "Skywalker, Leia", Type = "BEN" }); 

    addressBookGrid.DataSource = list; 
} 

private void InitializeGrid() 
{ 
    addressBookGrid.RowHeadersVisible = false; 
    addressBookGrid.ScrollBars = ScrollBars.Vertical; 
    addressBookGrid.SelectionMode = DataGridViewSelectionMode.FullRowSelect; 
    addressBookGrid.Columns[0].SortMode = DataGridViewColumnSortMode.Automatic; 
    addressBookGrid.Columns[1].SortMode = DataGridViewColumnSortMode.Automatic; 
} 
+0

可能重複?](http://stackoverflow.com/questions/6228340/how-do-i-sort-a-databound-column-in-a-datagridview-on-a-column-header-click) –

+0

Wow、second timeこの正確な質問は最後のカップルの時間に掲載されました。人の検索機能があります。 –

+0

申し訳ありませんチャールズ。私がその質問をしていたとき、その答えは出てこなかった。 –

答えて

6

here's an example

概要:

public Form1() 
{ 
InitializeComponent(); 

SortableBindingList<person> persons = new SortableBindingList<person>(); 
persons.Add(new Person(1, "timvw", new DateTime(1980, 04, 30))); 
persons.Add(new Person(2, "John Doe", DateTime.Now)); 

this.dataGridView1.AutoGenerateColumns = false; 
this.ColumnId.DataPropertyName = "Id"; 
this.ColumnName.DataPropertyName = "Name"; 
this.ColumnBirthday.DataPropertyName = "Birthday"; 
this.dataGridView1.DataSource = persons; 
} 
私は列ヘッダをクリック上のDataGridViewでデータバインド列をソートするにはどうすればよい[の
+0

これは完璧に機能しました。ありがとう。 –

+0

BindingListをソート可能にするためにはうまくいきました。 – bulltorious

+0

この回答がリンクなしで独自のメリットになるように、リンクの概要を追加できますか? http://meta.stackexchange.com/q/8231/189763 –

関連する問題