Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 1
Регистрация: 19.09.2015
Сообщений: 16
1

[WPF] Поиск по ListBox, с использованием TextBox и Button

31.05.2017, 14:52. Показов 3761. Ответов 4
Метки нет (Все метки)

Здравствуйте.
Помогите с реализацией: Есть ListBox, Button и TextBox.
в поле поиска пишу к примеру: Intel, и нажать поиск. Пройдясь по ListBox нашел Intel и подсветил его. как это сделать??
спасибо!
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Изображения
 
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2017, 14:52
Ответы с готовыми решениями:

Listbox, textbox, button и timer
Из 1-го textbox по нажатию кнопки в listbox выводятся ноты: дорефасольми(выводится вся эта строчка)...

Написать определения и заметки к словам label, listbox, textbox, button
помогите написать определения и заметки к словам label,listbox, textbox,button пожлуйста , надо для...

[WPF] Файловый менеджер с Listbox и TextBox
Здравствуйте.Нужна помощь с программой на C#.Нужно сделать так чтобы в ListBox отображалась заданая...

При нажатии на кнопку Button в ListBox добавить строку, введенную в TextBox
как сделать так что бы при вводе текста в textbox при нажатии на кнопку button в listbox...

4
3 / 3 / 4
Регистрация: 03.08.2014
Сообщений: 19
31.05.2017, 19:57 2
Лучший ответ Сообщение было отмечено Aleksander93 как решение

Решение

В WPF есть способ фильтрации:
Создается класс
C#
1
2
3
4
5
class Employee
{
  public int EmpNo { get; set; }
  public string EmpName { get; set; }
}
Далее разметка на форме
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<Grid>
<ListBox Height="298" HorizontalAlignment="Left" Margin="80,55,0,0"
Name="lstEmpData" VerticalAlignment="Top" Width="252">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding EmpName}"></TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<TextBlock Height="23" HorizontalAlignment="Left" Margin="60,18,0,0"
Name="textBlock1" Text="Search Name"
VerticalAlignment="Top" Width="134" />
<TextBox Height="27" HorizontalAlignment="Left" Margin="208,13,0,0"
Name="txtNameToSearch" TextChanged="txtNameToSearch_TextChanged"
VerticalAlignment="Top" Width="202" />
</Grid>
Далее создаем коллекцию
C#
1
2
ObservableCollection<Employee> lstEmployee =
new ObservableCollection<Employee>();
Заполняем коллекцию элементами
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
private void Window_Loaded(object sender, RoutedEventArgs e)
{
lstEmployee.Add(new Employee() { EmpNo = 1001, EmpName = "Mahesh" });
lstEmployee.Add(new Employee() { EmpNo = 1002, EmpName = "Amit" });
lstEmployee.Add(new Employee() { EmpNo = 1003, EmpName = "Vaibhav" });
lstEmployee.Add(new Employee() { EmpNo = 1004, EmpName = "Ashwin" });
lstEmployee.Add(new Employee() { EmpNo = 1005, EmpName = "Prashant" });
lstEmployee.Add(new Employee() { EmpNo = 1006, EmpName = "Vinit" });
lstEmployee.Add(new Employee() { EmpNo = 1007, EmpName = "Abhijit" });
lstEmployee.Add(new Employee() { EmpNo = 1008, EmpName = "Pankaj" });
lstEmployee.Add(new Employee() { EmpNo = 1009, EmpName = "Kaustubh" });
lstEmployee.Add(new Employee() { EmpNo = 1010, EmpName = "Mohan" });
 
lstEmpData.ItemsSource = lstEmployee;
}
И обрабатываем событие TextChanged
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private void txtNameToSearch_TextChanged(object sender,
TextChangedEventArgs e)
{
  string txtOrig = txtNameToSearch.Text;
  string upper = txtOrig.ToUpper();
  string lower = txtOrig.ToLower();
 
  var empFiltered = from Emp in lstEmployee
  let ename = Emp.EmpName
  where
   ename.StartsWith(lower)
   || ename.StartsWith(upper)
   || ename.Contains(txtOrig)
   select Emp;
 
  lstEmpData.ItemsSource = empFiltered;
}
Источник
1
amarf
01.06.2017, 08:58
  #3

Не по теме:

Цитата Сообщение от _dm666 Посмотреть сообщение
И обрабатываем событие TextChanged
По рукам бы дал за такие советы....но сейчас студентам поФиг - лишь бы работало

0
HF
590 / 401 / 105
Регистрация: 09.09.2011
Сообщений: 1,317
Записей в блоге: 2
01.06.2017, 10:19 4
Цитата Сообщение от amarf Посмотреть сообщение
По рукам бы дал за такие советы....но сейчас студентам поФиг - лишь бы работало
Цитата Сообщение от Aleksander93 Посмотреть сообщение
Здравствуйте.
Помогите с реализацией: Есть ListBox, Button и TextBox.
Если я правильно понял Amarf, то он хотел сказать что надо сделать по правильному, по MVVMному:
- txtNameToSearch, тоже разумеется, биндится во ViewModel
- когда меняется txtNameToSearch, то срабатывает блок "set" для этого свойства и там мы делаем обработку коллекции
- и делаем OnPropertyChanged("ObservableCollectionName") для коллекции
во вью всё происходит само
1
Жуткая тВарЬ
388 / 324 / 134
Регистрация: 06.02.2015
Сообщений: 960
Записей в блоге: 1
01.06.2017, 13:36 5
HF, Понял правильно, а еще можно использовать LisCollectionView с настройкой фильтра, автофильтрации и тогда кода будет в 5 раз меньше, работать будет быстрее, не будет лишних объектов в памяти и все в рамках mvvm
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.06.2017, 13:36

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Используя компоненты Button и TextBox реализовать введение элементов в ListBox и их запись в массив
Помогите, который день бьюсь над заданием. Задание: Создать форму для проведения различных...

Нужно создать программу-калькулятор с использованием Button и TextBox
(сложение, вычитание, деление, умножение)

Как в wpf передать выделенный в ListBox item в TextBox
Всем здравствуйте, Есть у меня приложение на wpf, на форме есть ListBox, если в нем я выделил...

Отмена выделения ListBox и очистка Поля ввода TextBox по клику на кнопку (WPF+Core)
Гуглю второй вечер, не получается( Как очистить из XAML список ListBox при нажатии на свободное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.