protected void FilterObjects() {
// If this list isn't filtered, we don't need to do anything else
if (!this.listView.UseFiltering) {
this.filteredObjectList = new ArrayList(this.fullObjectList);
return;
}
// Tell the world to filter the objects. If they do so, don't do anything else
// ReSharper disable PossibleMultipleEnumeration
FilterEventArgs args = new FilterEventArgs(this.fullObjectList);
this.listView.OnFilter(args);
if (args.FilteredObjects != null) {
this.filteredObjectList = ObjectListView.EnumerableToArray(args.FilteredObjects, false);
return;
}
IEnumerable objects = (this.listFilter == null) ?
this.fullObjectList : this.listFilter.Filter(this.fullObjectList);
// Apply the object filter if there is one
if (this.modelFilter == null) {
this.filteredObjectList = ObjectListView.EnumerableToArray(objects, false);
} else {
this.filteredObjectList = new ArrayList();
foreach (object model in objects) {
if (this.modelFilter.Filter(model))
this.filteredObjectList.Add(model);
}
}
}