2011-11-04 19 views
7

Estoy intentando que la clasificación funcione para DataGridView. La clasificación debe ser automática cuando hago clic en los encabezados de las columnas, pero no está funcionando. ¿Qué estoy haciendo mal?Cómo utilizar SortMode en 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

posible duplicado de [¿Cómo puedo ordenar una columna DataBound en un DataGridView en un encabezado de columna clic ?]] (http://stackoverflow.com/questions/6228340/how-do-i-sort-a-databound-column-in-a-datagridview-on-a-column-header-click) –

+0

Wow, segunda vez esta pregunta exacta fue publicada en las últimas dos horas. Hay una función de búsqueda, gente. –

+0

Lo siento Charles. Esa respuesta no surgió cuando hice la pregunta. –

Respuesta

6

Usted tiene que unirse a una lista que implementa la clasificación, here's an example

Resumen:

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

Esto funcionó perfecto. Gracias. –

+0

Funcionó muy bien para hacer mi lista de encuadernación ordenable. – bulltorious

+0

¿Puede agregar un resumen del enlace para que esta respuesta se soporte por sí misma sin el enlace? http://meta.stackexchange.com/q/8231/189763 –

Cuestiones relacionadas