Можно ли сделать фильтрацию по цене в ListView

У меня есть ListView в котором указаны товары и их цена, мне нужно сделать фильтрацию например ввожу от 1000 до 3000 и в ListView выдаются товары попадающие под этот иапазон.

Пытался сделать так:

var currentProc = KOMPMarketEntities1.GetContext().Processors.ToList();
if (ot.Text.Length > 0 || ido.Text.Length > 0)
{
    currentProc = currentProc.Where(p => p.Price > ot.Text.Length).ToList();
    currentProc = currentProc.Where(p => p.Price < ido.Text.Length).ToList();
}
LViewProc.ItemsSource = currentProc.OrderBy(p => p.IdProcessor).ToList();

"ot" - это TextBox в который вводиться цена начала диапозона

"ido" - это второй TextBox в который вводиться цена конца диапозона

"Price" - это ячейка в таблице с товарами обозначающая цену

Мне кажется нужно изменить "Length" в этой строке (p => p.Price > ot.Text.Length) но я не знаю на что можно изменить чтобы всё работало корректно


Ответы (1 шт):

Автор решения: aepot

Если просто фильтрация по цене, то как-то так, при условии, что p.Price это число int:

IQueryable<Processor> currentProc = KOMPMarketEntities1.GetContext().Processors;
if (int.TryParse(ot.Text, out int from))
{
    currentProc = currentProc.Where(p => p.Price >= from);
}
if (int.TryParse(ido.Text, out int to))
{
    currentProc = currentProc.Where(p => p.Price <= to);
}
LViewProc.ItemsSource = currentProc.OrderBy(p => p.IdProcessor).ToList();

Что касается вывода в диапазоне от 1000 до 3000, посмотрите этот ответ.

→ Ссылка