Я предполагаю, что ваши предположения о том, как это работает, неверны, поэтому позвольте мне сделать задницу из вас и меня, ответив ...
Если ваша цель - сортировка по столбцу A и столбцу B, вы должны сделать что-то вроде следующего:
ShipmentsList.Items.SortDescriptions.Add(New SortDescription("A", _
ListSortDirection.Ascending))
ShipmentsList.Items.SortDescriptions.Add(New SortDescription("B", _
ListSortDirection.Ascending))
, что может привести к следующему порядку:
A B
1 х
1 z
2 а
2 д
Если ваша цель - прекратить сортировку по A, а теперь сортировать по B, вы бы сделали что-то вроде этого:
' 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))
Очистив коллекцию описаний сортировки, вы удаляете SortDescription для A и заменяете ее на одну для B, а не добавляете одну для B после. Это приведет к следующему порядку:
A B
2 а
2 д
1 х
1 z