public void RemoveAt(int index)
{
MenuItem item = _list[index];
Menu owner = item.Owner;
if (owner != null)
{
MenuItem current = owner.SelectedItem;
// Check if the selected item is under this item
while (current != null)
{
if (current == item)
{
owner.SetSelectedItem(null);
break;
}
current = current.Parent;
}
}
item.SetParent(null);
_list.RemoveAt(index);
_version++;
Log.Add(new LogItem(LogItemType.Remove, index, _isTrackingViewState));
}