Сортировка списка в числовом виде VB.Net

У меня есть список чисел в окне формы Windows, который я создал в VSTO Visual Studio 2012. Я пишу в vb.net

Список сортируется по алфавиту, и мне нужно, чтобы он сортировался по номерам.

т.е. в настоящее время сортируется как 1,10,100,2,3,4 Мне нужно отсортировать как 1,2,3,4,10,100

Я нашел это в Интернете, которое работает (до последней точки).

Dim MyItems = (From item In HardCodeListBox.Items Order By CInt(item.text) Select _
   item).ToArray

HardCodeListBox.Items.Clear()
HardCodeListBox.Items.AddRange(MyItems) ' This Does Not Work For Me

Я получаю сообщение: «Невозможно преобразовать объект типа «System.Object []» в тип «System.Windows.Forms.ListViewItem []».

Извините - я немного зеленый в VSTO и не знаю, как это исправить.

Общая картина того, что я пытаюсь сделать, - это отсортировать список, щелкнув заголовок. Я хочу, чтобы он чередовался каждый раз, когда пользователь нажимает на него, то есть по возрастанию, а затем по убыванию. затем по возрастанию с каждым последующим щелчком.

Элементы списка отмечены (некоторые из них, некоторые не зависят от выбора пользователя), мне нужно сохранить этот выбор при сортировке.

Любая помощь будет чрезвычайно полезной!


person Doctor P    schedule 21.01.2014    source источник
comment
Вы пытаетесь присвоить массив объектов тому, что должно быть перечисляемым из ListViewItems. Вы знаете, что это за объекты, но компилятор этого не знает. Таким образом, вы должны привести свой массив к массиву ListViewItems.   -  person    schedule 21.01.2014
comment
... и ListBox не принимает ListViewItems, поэтому вы должны работать с ListView. И если это так, то LV поддерживает сортировку по методам. myListView.Sorting = Ascending ... myListView.Sort. Поскольку это числа, вам, вероятно, потребуется использовать реквизит ListViewItemSorter с сортировщиком ICompare.   -  person Ňɏssa Pøngjǣrdenlarp    schedule 21.01.2014