У меня есть класс автомобилей с различными свойствами.
У меня есть статический класс коллекции Cars, в котором для простоты я определил набор элементов машины, которые я могу сделать доступными в XAML через провайдера объектных данных.
У меня есть источник представления коллекции, определенный в XAML, который успешно связывается с моим ObjectDataProvider, как и должно.
У меня есть список, в котором показана коллекция.
Я добавил сортировку в CVS, как рекомендовано во всех стандартных руководствах, и все работает отлично.
Мой вопрос:
Предположим, я хочу отсортировать по другому полю. Конечно, есть способ изменить это, не передавая код клиенту. Поэтому я реализовал поле со списком.
Я использую следующий код для загрузки списка свойств из класса Car в поле со списком, но я не просто получаю список свойств. Я также получаю их типы данных. Я не хочу этого.
Car xyz=new Car(); //Make a temp Car Object so we can get a list of properties.
//Assign this to the combobox for listing.
cbxSortPrimary.ItemsSource = xyz.GetType().GetProperties();
Результат (что отображается в поле со списком):
System.String Model
Double Price
Int32 NoOfPrevOwners
DataType PropertyName
ect... ect...
ect... ect...
ect... ect...
Моя цель - загрузить имена свойств в поле со списком. Затем используйте выбранное имя свойства, чтобы построить строку кода, например:
myListBox.Items.SortDescriptions.Add(new SortDescription(ComboBox.SelectedItem.ToString(), ListSortDirection.Descending));
Где ComboBox.SelectedItem.ToString () будет содержать имя свойства для сортировки.
Итак как мне избавиться от типа данных перед именем свойства . Я знаю, что могу делать все виды грязной загрузки в другой список, а затем обрабатывать несколько строк, ища первый пробел справа и разбивая все перед этим . Но, конечно, должен быть более легкий путь.
По сути, я собираюсь позволить пользователю сортировать по другому свойству класса Car (поэтому мне нужно где-то загрузить свойства и сделать их доступными для выбора пользователем, отсюда и поле со списком). Я спрашиваю, что должен быть простой способ получить список свойств без всего кода манипуляции со строками и, надеюсь, без особого размышления (если я уже не использую его, не зная), поскольку это кажется очень основным требованием.
Заранее спасибо за любую помощь!