2011-11-04 17 views
7

Sto cercando di far funzionare l'ordinamento per DataGridView. L'ordinamento dovrebbe essere automatico quando faccio clic sulle intestazioni delle colonne ma non funziona. Che cosa sto facendo di sbagliato?Come utilizzare SortMode in DataGridView

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

possibile duplicato di [Come posso ordinare una colonna DataBound in un DataGridView su di una colonna click ?] (http://stackoverflow.com/questions/6228340/how-do-i-sort-a-databound-column-in-a-datagridview-on-a-column-header-click) –

+0

Wow, seconda volta questa domanda esatta è stata pubblicata nelle ultime due ore. C'è una funzione di ricerca, le persone. –

+0

Mi dispiace Charles. Quella risposta non si presentò quando stavo facendo la domanda. –

risposta

6

Bisogna legarsi ad una lista che implementa l'ordinamento, here's an example

Sommario:

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

Questo ha funzionato perfettamente. Grazie. –

+0

Ha funzionato benissimo per rendere ordinabile il mio BindingList. – bulltorious

+0

Puoi per favore aggiungere un riassunto del link in modo che questa risposta possa reggere il suo merito senza il link? http://meta.stackexchange.com/q/8231/189763 –

Problemi correlati