Используйте ItemSource с ListViewItem в сортировке - PullRequest
0 голосов
/ 05 ноября 2019

У меня проблема с сортировкой listView в WPF. Это работает с привязкой, но я хочу сохранить манипуляции с ListViewItems. Моя проблема - ItemSource по умолчанию пуст. Если я задаю itemsource, как показано ниже, он не равен null, но моя функция сортировки не работает.

ObservableCollection<ListViewItem> allFormats = new ObservableCollection<ListViewItem>();
foreach (Item drd in formats) {
  ListViewItem lvi = new ListViewItem();
  // Section with ListViewItem manipulation. Set drd values, set tag etc...
  allFormats.Add(lvi);
}
lvFormats.ItemsSource = (ICollectionView)CollectionViewSource.GetDefaultView(allFormats);

Функция сортировки:

private void Sort(string sortBy, ListSortDirection direction)
        {
            CollectionView dataView = (CollectionView)CollectionViewSource.GetDefaultView(this.ItemsSource);

            if (dataView != null)
            {
                dataView.SortDescriptions.Clear();
                SortDescription sd = new SortDescription(sortBy, direction);
                dataView.SortDescriptions.Add(sd);
                dataView.Refresh();
            }
        }

При связывании этой работы, потому что у меня непосредственно есть классв представлении коллекции. Здесь у меня есть CurrentItem = {System.Windows.Controls.ListViewItem: { cFormats = aaaa, cFormatID = 3, cFormatIDVersion = 6 }}. В xaml я не использую привязку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...