public static bool IsFirstChildOfParent(this OutlineItem item) { if (item.IndexInParent() == 0) { return(true); } if (item.IndexInParent() == -1) { throw new InvalidOperationException(); } return(false); }
public static void ReplaceWith(this OutlineItem itemToReplace, OutlineItem item) { var parent = itemToReplace.ParentItem; var index = itemToReplace.IndexInParent(); parent.Items.RemoveAt(index); parent.Items.Insert(index, item); }
public static bool IsLastChildOfParent(this OutlineItem item) { var indexInParent = item.IndexInParent(); if (indexInParent != -1) { if (item.ParentItem.Items.Count == indexInParent + 1) { return(true); } } throw new InvalidOperationException(); }
public static OutlineItem PreviousSibling(this OutlineItem item) { var indexInParent = item.IndexInParent(); if (indexInParent == -1) { return(null); } if (!item.IsFirstChildOfParent()) { return(item.ParentItem.Items[indexInParent - 1]); } return(null); }
public static OutlineItem NextSibling(this OutlineItem item) { var indexInParent = item.IndexInParent(); if (indexInParent == -1) { return(null); } if (!item.IsLastChildOfParent()) { return(item.ParentItem.Items[indexInParent + 1]); } return(null); }