コード例 #1
0
        /// <summary>
        /// Resets the node's IsChecked state.
        /// </summary>
        /// <param name="exceptCurrentRow">specifies whether need to reset current node IsChecked state.</param>
        internal void ResetIsCheckedState(bool exceptCurrentRow)
        {
            var nodes = treeGrid.GetCheckedNodes(true);

            if (nodes == null || !nodes.Any())
            {
                return;
            }
            treeGrid.View.suspendIsCheckedRecursiveUpdate = true;
            if (!exceptCurrentRow)
            {
                foreach (var node in nodes)
                {
                    SetIsCheckedState(node, false);
                }
            }
            else
            {
                if (treeGrid.SelectionController.CurrentCellManager.CurrentRowColumnIndex.RowIndex != -1)
                {
                    var currentNode = treeGrid.GetNodeAtRowIndex(treeGrid.SelectionController.CurrentCellManager.CurrentRowColumnIndex.RowIndex);
                    foreach (var node in nodes)
                    {
                        if (node != currentNode)
                        {
                            SetIsCheckedState(node, false);
                        }
                    }
                }
            }
            treeGrid.View.suspendIsCheckedRecursiveUpdate = false;
        }