In grado di ordinare una casella di riepilogo solo una volta, non so perché (WPF)

StackOverflow https://stackoverflow.com/questions/1637612

  •  08-07-2019
  •  | 
  •  

Domanda

Domanda: quali modifiche devono essere apportate al mio codice per consentirmi di ordinare più di una volta?


Informazioni:

Ho una casella di riepilogo che contiene 1000 spedizioni di esempio nel programma che sto scrivendo, ho trovato il modo più semplice per ordinare queste spedizioni con un clic di un pulsante è così:

Private Sub Date_Ascending_Selected(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Date_Ascending.Selected
    ShipmentsList.Items.SortDescriptions.Add(New SortDescription("ReceivedOn", ListSortDirection.Ascending))
End Sub

Il problema è che funziona solo una volta. Al momento ne ho 4 (Data Asc e Des, Status Asc e Des) con un potenziale di ben 30. Vorrei poter ordinare più di una volta, ma non sono sicuro di come risolvere questo problema. Il mio istinto mi dice che il problema sta nel " Nuovo " parte, ma non so dove altro dovrei metterlo.

È stato utile?

Soluzione

Sto indovinando le tue ipotesi su come funziona in modo errato, quindi lasciami fare un culo da te e da me rispondendo ...

Se il tuo obiettivo è ordinare per colonna A e colonna B, faresti qualcosa del tipo:

ShipmentsList.Items.SortDescriptions.Add(New SortDescription("A", _
    ListSortDirection.Ascending))
ShipmentsList.Items.SortDescriptions.Add(New SortDescription("B", _
    ListSortDirection.Ascending))

che potrebbe comportare il seguente ordine:

A & nbsp; & nbsp; B
1 & nbsp; & nbsp; x
1 & nbsp; & nbsp; z
2 & nbsp; & nbsp; un
2 & nbsp; & nbsp; d

Se il tuo obiettivo è smettere di ordinare per A, e ora ordinare per B, faresti qualcosa del genere:

' set initial sort
ShipmentsList.Items.SortDescriptions.Add(New SortDescription("A", _
    ListSortDirection.Ascending))
'... later, we now want to sort by B
ShipmentsList.Items.SortDescriptions.Clear()
ShipmentsList.Items.SortDescriptions.Add(New SortDescription("B", _
    ListSortDirection.Ascending))

Cancellando la raccolta di descrizioni degli ordinamenti, si rimuove SortDescription per A e lo si sostituisce con uno per B, anziché aggiungere quello per B dopo. Ciò comporterebbe il seguente ordine:

A & nbsp; & nbsp; B
2 & nbsp; & nbsp; un
2 & nbsp; & nbsp; d
1 & nbsp; & nbsp; x
1 & nbsp; & nbsp; z

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top