internal void SetCurrentCellAndCurrentRowColumnIndex(RowColumnIndex rowColumnIndex, RowColumnIndex previousCurrentRowColumnIndex)
 {
     if (TreeGrid.NavigationMode == NavigationMode.Cell)
     {
         var currentColumnIndex = previousCurrentRowColumnIndex.ColumnIndex < CurrentCellManager.GetFirstCellIndex() ? CurrentCellManager.GetFirstCellIndex() : previousCurrentRowColumnIndex.ColumnIndex;
         rowColumnIndex.ColumnIndex = currentColumnIndex;
         CurrentCellManager.UpdateCurrentCell(rowColumnIndex, previousCurrentRowColumnIndex, ActivationTrigger.Program);
     }
     else
     {
         CurrentCellManager.UpdateGridProperties(rowColumnIndex);
     }
 }
        internal void UpdateCurrentRowColumnIndexOnNodeExpandAndCollapse()
        {
            if (!SelectedRows.Any(r => r.RowIndex != -1) || this.CurrentCellManager.CurrentRowColumnIndex.RowIndex != -1)
            {
                return;
            }
            var columnIndex           = this.CurrentCellManager.CurrentRowColumnIndex.ColumnIndex < CurrentCellManager.GetFirstCellIndex() ? CurrentCellManager.GetFirstCellIndex() : this.CurrentCellManager.CurrentRowColumnIndex.ColumnIndex;
            var currentRowColumnIndex = new RowColumnIndex(SelectedRows.LastOrDefault(r => r.RowIndex != -1).RowIndex, columnIndex);

            SetCurrentCellAndCurrentRowColumnIndex(currentRowColumnIndex, CurrentCellManager.CurrentRowColumnIndex);
        }