This is quite easy to do: assuming your ObservableCollection<Animal> is named 'ZooAnimals' and your ListBox is named 'TheZoo' .. and there are two buttons with Click EventHandlers:
private void TigersOnly_Click(object sender, EventArgs e)
{
TheZoo.DataSource = ZooAnimals.Where(tgr => tgr is Tiger).ToList();
}
private void ElephantsOnly_Click(object sender, EventArgs e)
{
TheZoo.DataSource = ZooAnimals.Where(elp => elp is Elephant).ToList();
}
Of course, you can reset the ListBox to show
all instances of Types derived from Animal/Whatever-Vore/ by simply setting: TheZoo.DataSource = ZooAnimals;
Welcome to CodeProject :)