Как получить список, связанный с ListView как ItemSource? - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть WPF ListView, который имеет List<T> как ItemsSource. Теперь я хочу запросить имя списка, которое привязано к ListView. Как мне этого добиться?

Мне нужно имя List<T>, чтобы я мог повторно использовать функцию. Пример:

    private void Sort(ListView lv)
    {
        lv.ItemsSource.Sort((x, y) => y.Name.CompareTo(x.Name)); // does not work
    }

1 Ответ

1 голос
/ 07 ноября 2019

Если вы посмотрите на код здесь:

https://www.wpf -tutorial.com / listview-control / listview-sorting /

Вы заметитевам не нужно имя списка для его сортировки.

РЕДАКТИРОВАТЬ: И вы можете ссылаться на столбец, используя только общую строку, которая в вашем случае выглядит как «Имя».

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

Код по ссылке:

    public ListViewSortingSample()
    {
        InitializeComponent();
        List<User> items = new List<User>();
        items.Add(new User() { Name = "John Doe", Age = 42 });
        items.Add(new User() { Name = "Jane Doe", Age = 39 });
        items.Add(new User() { Name = "Sammy Doe", Age = 13 });
        items.Add(new User() { Name = "Donna Doe", Age = 13 });
        lvUsers.ItemsSource = items;

        CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(lvUsers.ItemsSource);
        view.SortDescriptions.Add(new SortDescription("Age", ListSortDirection.Ascending));
    }

Замените «Имя» на возраст в этом описании сортировки, и у вас будет сортировка поИмя свойства.

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