private void Filter_Click(object sender, EventArgs e) { if (this.RelationItems.CurrentRow.DataBoundItem != null) { string type = this.RelationType.SelectedItem.ToString(); if (type == types[0]) { var person = (PersonDTO)this.RelationItems.CurrentRow.DataBoundItem; items = service.FilterByRelation(items.ToArray(), person.FirstName, person.LastName, person.Group, type).ToList(); } else if (type == types[1]) { var location = (LocationDTO)this.RelationItems.CurrentRow.DataBoundItem; items = service.FilterByRelation(items.ToArray(), location.Name, location.Country, location.Region, type).ToList(); } else { var property = (PropertyDTO)this.RelationItems.CurrentRow.DataBoundItem; items = service.FilterByRelation(items.ToArray(), property.Name, property.Value, string.Empty, type).ToList(); } this.Close(); } }