Tengo un simple ListView
y quiero ordenar los contenidos numérica o alfabéticamente, ascendentes o descendentes. La elección viene de un menú desplegable. Entiendo que puedo usar CollectionViewSource
para lograr la clasificación, pero ¿cómo puedo alterar la SortDescription o la dirección sobre la marcha?Cambiar vista de lista ordenar propiedad/dirección dentro de XAML solamente
Actualización:
Ok, así que he fijado mis CVS como así, el modelo de vista es lo que el ListView está obligado actualmente a. Requiero que PropertyName se vincule a la propiedad del elemento del cuadro combinado actualmente seleccionado PropertyName
. El cuadro combinado está vinculado a una lista personalizada que expone el nombre de propiedad en el que quiero ordenar.
Se queja de la PropertyName que im tratando de utilizar:
A 'Encuadernación' no se puede establecer en la propiedad de la 'PropertyName' de tipo 'SortDescription'. Un 'Enlace' solo se puede configurar en DependencyProperty de un DependencyObject.
<CollectionViewSource Source="{StaticResource viewModel.ListValues}" x:Key="cvs">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="{Binding Path=SortPropertyName, Source=comboSort}"/>
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
<ListView ItemsSource="{Binding Source={StaticResource cvs}}" />
puede quitar la vieja descripción especie a continuación, añadir la nueva descripción de clase (con los diferentes comparador) y, finalmente, llamar de actualización en el CollectionViewSource – punker76
quiero para hacer esto en XAML solamente, es decir, sin código detrás (el código en ViewModel es aceptable) – Chris
sí, hazlo, tu cuadro desplegable se enlaza a una propiedad en tu viewmodel y después de cambiar la selección de que puedes cambiar tu CollectionViewSource (tu listvie w se une a CollectionViewSource) – punker76