public override void RemoveAt (int index)
{
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");
RemoveFromSourceCollection (SourceCollection.IndexOf (ItemAtIndex (index)));
}