Подтвердить что ты не робот

Сортировка ObservableCollection

Предположим, что у меня ObservableCollection класса employee

public ObservableCollection<Employee> employeeCollection = new ObservableCollection<Employee>();

public class Employee
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public double MobileNumber { get; set; }
    public string City { get; set; }
    public int Age { get; set; }

    public Employee() {}
}

теперь я пытаюсь сортировать ObservableCollection ( "employeeCollection" ) путем соответствующего выбора пользователем из combobox [это будет....Sort By FirstName....Sort By MobileNumber и т.д....]..

и требуется получить отсортированную наблюдаемую коллекцию.... Значит, он не должен быть в форме "var", он должен быть ObservableCollection<Employee>

Поэтому я могу назначить его "ItemsSource" свойству "ItemsControl"...

Спасибо......

4b9b3361

Ответ 1

Вы можете сортировать представление коллекции, а не сортировать коллекцию:

// xmlns:scm="clr-namespace:System.ComponentModel;assembly=WindowsBase"
<myView.Resources>
    <CollectionViewSource x:Key="ItemListViewSource" Source="{Binding Itemlist}">
        <CollectionViewSource.SortDescriptions>
            <scm:SortDescription PropertyName="SortingProperty" />
        </CollectionViewSource.SortDescriptions>
    </CollectionViewSource>
</myView.Resources>

И затем вы можете использовать CollectionViewSource как ItemSource:

ItemsSource="{Binding Source={StaticResource ItemListViewSource}}"

Ответ 2

Я думаю, что у PVitt может быть лучшее решение... однако, я нашел это Класс SortedObservableCollection, который может помочь?

http://softcollections.codeplex.com/

Ответ 4

Вам не нужно сортировать себя, но может позволить WPF сделать это за вас. Например, SortDescription.