Я использую MVVM, и я хочу отсортировать мой ComboBox
по возрастанию числа. Мои объекты (из базы данных), хранящиеся в ObservableCollection
, всегда являются номерами, хранящимися в виде строки.C# Номера заказов в ComboBox, которые являются строками с использованием Linq (ObservableCollection)
Как только я прохожу мимо 10, мой ComboBox
показывает 1
, а затем 10
.
Могу ли я настроить Linq для правильной сортировки?
Или я пытаюсь это неправильно?
public ObservableCollection<clsItemsModel> MyCollection
{
get { return _MyCollection; }
set
{
_MyCollection = value;
RaisePropertyChanged();
}
}
private void LoadData()
{
MyCollection = _clsItemsDataService.GetItems();
MyCollection.OrderBy(p => p.Items);
}
Вам необходимо преобразовать строки в int перед сортировкой, если вы хотите, например, 1 3 9 10 вместо 1 10 3 9. – itsme86
'int.Parse (p.Items)'? (Хотя 'Items' кажется неинтуитивным именем для * единственного значения *.) – David
Ответ здесь: http://stackoverflow.com/questions/6396378/c-sharp-linq-orderby-numbers-that-are- string-and-you-can not-convert-them-to-int –