2009-08-07 2 views
0

Хорошо, у меня есть ItemsControl привязываться к List<IComparableObject>, каждый второй изменить эти List объекты, так что я должен прибегнуть их, так что каждый второй я вызываю метод List.Sort(). Проверка на панели «Наблюдение» в VS2008, я могу сказать, что List сортируется, но ItemsControl этого не делает. Как я могу сделать эту работу?WPF ItemsControl DataContext сортировки

Спасибо!

ответ

5

Вы должны сортировать CollectionView:

List<MyObject> myInternalList = new List<MyObject>(); 
... 
ICollectionView colView = CollectionViewSource.GetDefaultView(myInternalList); 
colView.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending)); 

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

HTH

+0

Спасибо, работает как шарм. У меня есть еще один вопрос: http://stackoverflow.com/questions/1250953/sorting-in-window-datacontext-in-wpf Возможно, вы тоже можете помочь с этим. Благодаря!! – Carlo

+0

@Roel Можем ли мы применить специфический для культуры вид с этим подходом http://stackoverflow.com/questions/31332882/culture-specific-sorting-on-icollectionview –

Смежные вопросы