public override void Remove (object item)
{
if (!CanRemove)
throw new InvalidOperationException ("Removing is not supported by this collection");
if (IsAddingNew || IsEditingItem)
throw new InvalidOperationException ("Cannot remove an item when adding or editing an item");
int index = SourceCollection.IndexOf (item);
if (index != -1)
RemoveFromSourceCollection (index);
}