示例#1
0
        /// <summary>
        ///     Перемещает указанный элемент.
        /// </summary>
        public void MoveItem(object item, int delta)
        {
            var dataRow = FindDataRowByItem(item);

            if (dataRow != null)
            {
                var dataRowNode = TreeListView.GetNodeByContent(dataRow);

                if (dataRowNode != null)
                {
                    var dataRowNodes = (dataRowNode.ParentNode != null)
                        ? dataRowNode.ParentNode.Nodes
                        : TreeListView.Nodes;
                    var dataRowNodeOldIndex = dataRowNodes.IndexOf(dataRowNode);
                    var dataRowNodeNewIndex = dataRowNodeOldIndex + delta;

                    if (dataRowNodeNewIndex >= 0 && dataRowNodeNewIndex < dataRowNodes.Count)
                    {
                        dataRowNodes.RemoveAt(dataRowNodeOldIndex);
                        dataRowNodes.Insert(dataRowNodeNewIndex, dataRowNode);

                        TreeListView.FocusedNode = dataRowNode;
                    }
                }
            }
        }
示例#2
0
        /// <summary>
        ///     Сворачивает указанный элемент.
        /// </summary>
        public void CollapseItem(object item)
        {
            var dataRow = FindDataRowByItem(item);

            if (dataRow != null)
            {
                RefreshDataRow(dataRow);

                TreeList.InvokeControl(() =>
                {
                    var dataRowNode = TreeListView.GetNodeByContent(dataRow);

                    if (dataRowNode != null)
                    {
                        TreeListView.CollapseNode(dataRowNode.RowHandle);
                    }
                });
            }
        }