0

Есть у нас ListBox, в который через ItemsSource мы загружаем коллекцию объектов. У этих объектов есть свойство Title, и нужно чтобы по этому свойству и происходил поиск в этом листбоксе. Под поиском я имею ввиду такое действие, чтобы в списке показывались только те объекты, у которых свойство Title подходит заданному (пользователь будет вводить в TextBox). Есть какие-нибудь идеи?

First Sin
  • 190
  • Такое действие называется фильтр. Используйте List<T>().Where(/*лямбда тут для тех, что отобрать */) – Vitaliy Stop_RU_war_in_UA Jun 07 '19 at 20:52
  • мы загружаем коллекцию объектов загружайте с фильтром по тексту. – tym32167 Jun 07 '19 at 20:52
  • @tym32167 а как мне привязать введенное в текстбокс значение в качестве фильтра? – First Sin Jun 07 '19 at 21:07
  • через ViewModel конечно – tym32167 Jun 07 '19 at 21:10
  • Я как то писал данный ответ и там реализовывал фильтрацию (в самом низу). Вот примерно тоже самое вам и надо реализовать у себя. – EvgeniyZ Jun 07 '19 at 21:16
  • @EvgeniyZ да, думаю это то, что мне и нужно. Но только не могли бы подсказать. У вас в примере вы проверяется Value != 0, а как можно в качестве условия задать содержимое TextBox'a? Т.е. проверять чтобы Value == TextBox.Text (условно)? – First Sin Jun 07 '19 at 22:23
  • Просто уберите все лишнее, вам достаточно просто инициализировать (FilteredItems = new ListCollectionView(Items);). Дальше где и как вам надо, меняйте фильтр на тот, что нужен (что то по типу FilteredItems.item => ((ItemViewModel)item).Value != 0;). Все остальное аналогично тому ответу. – EvgeniyZ Jun 07 '19 at 22:43
  • @EvgeniyZ хорошо, благодарю – First Sin Jun 07 '19 at 22:49

0 Answers0