Как сделать фильтрацию данных в DataGridView в WinForms
Есть ComboBox с данными коллекции департаментов. Есть DataGridView с данными коллекции рабочих. Нужно, чтобы при выборе департамента в ComboBox, DataGridView отображал только тех рабочих, которые работают в данном департаменте. Department(int id, string name) Worker(string name, int age, int departmentId)
Вот такой код видел, но он не работает, в DataGridView всегда пусто
private void cbDepartments_SelectedIndexChanged(object sender, EventArgs e)
{
dgvWorkers.DataSource = data.workersDB.Where(find);
}
private bool find(Worker a)
{
return a.DepartmentId == ((Department)cbDepartments.SelectedItem).Id;
}
Ответы (1 шт):
Автор решения: Suchender
→ Ссылка
Получилось через FindAll
private void cbDepartments_SelectedIndexChanged(object sender, EventArgs e)
{
dgvWorkers.DataSource = data.workersDB.FindAll(find);
}
private bool find(Worker a)
{
return a.DepartmentId == ((Department)cbDepartments.SelectedItem).Id;
}