public void RemoveAt(int index)
{
Script scriptToRemove = null;
Brick brickToRemove = null;
var count = 0;
foreach (var script in Scripts)
{
if (count == index)
{
scriptToRemove = script;
break;
}
count++;
foreach (var brick in script.Bricks)
{
if (count == index)
{
scriptToRemove = script;
brickToRemove = brick;
_lastDeletedBrick = brick;
LastDeletedIndex = index;
break;
}
count++;
}
if (brickToRemove != null)
{
break;
}
}
if (brickToRemove == null)
{
Scripts.Remove(scriptToRemove);
OnScriptRemoved(scriptToRemove, index);
}
else
{
scriptToRemove.Bricks.Remove(brickToRemove);
OnCollectionChanged(new NotifyCollectionChangedEventArgs(NotifyCollectionChangedAction.Remove, brickToRemove, index));
}
}