/// <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; }