2009-06-03 28 views
6

Tengo un WPF ListView con una columna que tiene fechas. Me gustaría una forma de personalizar las fechas (por valor de fecha, en lugar de valor de cadena). ¿Hay alguna forma de hacer esto? En este momento estoy usando list.Items.SortDescriptions para ordenar usando otra columna, pero me gustaría cambiar esto para ordenar la columna de la fecha.Ordenar listaVer por fecha

Gracias.

Respuesta

7

¿Has probado eso?

ICollectionView view = CollectionViewSource.GetDefaultView(listView.ItemsSource); 
view.SortDescriptions.Add(new SortDescription("Date", ListSortDirection.Descending)); 

EDIT: También puede echar un vistazo a this attached property

+0

Sí, lo veo ahora. Quizás tenía miedo de que solo hiciera una comparación de cuerdas. Hice una propiedad que convirtió mi fecha de cadena en un objeto de fecha y está funcionando bien. Gracias. – Max

+0

¿Sabes si podemos hacer eso usando XAML? – SRKX

+1

Claro, eche un vistazo al [ejemplo en MSDN] (http://msdn.microsoft.com/en-us/library/system.windows.data.collectionviewsource.aspx) –

1

Utilice ObservableList y un tipo de objeto personalizado, y realice la clasificación usted mismo. Conecte el ListView a ObservableList usando ItemsSource.

..., o podría intentar hacer lo que este blog describe; Sorting ListViews

3

Si usted está encontrando que la forma de WPF es la clasificación por defecto no es lo que pretende, puede proporcionar un clasificador personalizado al predeterminado Ver:

ListCollectionView view = 
    (ListCollectionView)CollectionViewSource.GetDefaultView(listView.ItemsSource); 
view.CustomSort = new DateValueSorter(); 
listView.Items.Refresh(); 

Dónde DateValueSorter es una clase que implementa la interfaz IComparer y tipo de acuerdo con el valor de fecha y produce el ordenamiento que busca.

Cuestiones relacionadas