C# winform listview ordenando casillas de verificación seleccionadas
El propio ListView proporciona la propiedad ListViewItemSorter para permitir a los usuarios implementar una clasificación personalizada.
Agrega el siguiente código para lograr la función que deseas. ?public?class?ListViewSorterAscending?:?System.Collections.IComparer
{
public?int?Compare(object?x,?object?y)
{
//Lo que necesitamos es ordenar primero todos los elementos seleccionados en orden ascendente y luego ordenar los elementos no seleccionados en orden ascendente
ListViewItem?c1?=?x? as?ListViewItem;
ListViewItem?c2?=?y?as?ListViewItem;
if?(c1.Checked?&&?c2.Checked?||?!c1.Checked ?&&?!c2.Checked)
return?c1.Text.CompareTo(c2.Text);
si?(c1.Checked?&&?!c2.Checked)
retorno?-1;
si?(!c1.Comprobado?&&?c2.Comprobado)
retorno?1;
return?0;
}
}
Genere una instancia del clasificador en algún lugar y asigne la propiedad del comparador de clasificación de ListView: myListView.ListViewItemSorter?= ?new ?ListViewSorterAscending();
En el evento Click del botón, escriba: mylistView.Sort();
Si necesita revertir la clasificación, cambie el clasificador usted mismo.
Nota: El valor de referencia en este ejemplo de clasificación es el atributo Texto del Elemento. Si necesita utilizar otros atributos para ordenar, modifíquelo usted mismo.