Как сделать фильтрацию данных в DataGridView в WinForms

Рейтинг: 0Ответов: 1Опубликовано: 24.01.2023

Есть 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;
}

Ответы

▲ 0

Получилось через 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;
}