/// <summary> /// Modifies the index to address the next position in a list. /// </summary> public virtual void MoveUp() { NodeTreeHelperBlockList.GetLastBlockChildIndex(ParentNode, PropertyName, BlockIndex, out int LastIndex); Debug.Assert(Index + 1 < LastIndex); Index++; }
/// <summary> /// Initializes a new instance of the <see cref="WriteableInsertionExistingBlockNodeIndex"/> class. /// </summary> /// <param name="parentNode">Node containing the block list.</param> /// <param name="propertyName">Property in <paramref name="parentNode"/> corresponding to the block list..</param> /// <param name="node">Inserted node.</param> /// <param name="blockIndex">Position of the block in the block list.</param> /// <param name="index">Position where to insert <paramref name="node"/> in the block.</param> public WriteableInsertionExistingBlockNodeIndex(INode parentNode, string propertyName, INode node, int blockIndex, int index) : base(parentNode, propertyName, node) { Debug.Assert(blockIndex >= 0); Debug.Assert(index >= 0); // You can insert at position 0, contrary to a browsing index that only supports positions other than 0. Debug.Assert(NodeTreeHelperBlockList.GetLastBlockChildIndex(parentNode, propertyName, blockIndex, out int LastIndex) && index <= LastIndex); BlockIndex = blockIndex; Index = index; }