private void TreeGrid_ItemsSourceChanged(object sender, TreeGridItemsSourceChangedEventArgs e)
 {
     if (ViewModel is not ProjectExplorerViewModel viewModel)
     {
         return;
     }
     if (TreeGrid == null)
     {
         return;
     }
     if (TreeGrid.View != null)
     {
         if (!_isfirsttime)
         {
             if (viewModel.LastSelected != null)
             {
                 TreeGrid.ExpandAllNodes();
                 var rowIndex = this.TreeGrid.ResolveToRowIndex(viewModel.LastSelected);
                 if (rowIndex > -1)
                 {
                     var q           = TreeGrid.ResolveToRowIndex(rowIndex - 1);
                     var columnIndex = this.TreeGrid.ResolveToStartColumnIndex();
                     this.TreeGrid.ScrollInView(new RowColumnIndex(q, columnIndex));
                     TreeGrid.SelectRows(q, q);
                 }
             }
         }
         else
         {
             _isfirsttime = false;
         }
     }
 }
        //private void View_NodeCollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
        //{
        //    Trace.WriteLine("hello");
        //    //if (e.NewItems != null)
        //    //{
        //    //    foreach (var nerd in e.NewItems)
        //    //    {
        //    //        Trace.WriteLine(nerd.ToString());
        //    //        TreeGrid.ExpandNode((TreeNode)nerd);
        //    //    }
        //    //}

        //    if (ViewModel is not ProjectExplorerViewModel viewModel)
        //    {
        //        return;
        //    }

        //    //var rootnodes = TreeGrid.View.Nodes.RootNodes;
        //    //foreach (var rootnode in rootnodes)
        //    //{
        //    //    TreeGrid.ExpandNode(rootnode);
        //    //}

        //    Trace.WriteLine(e.Action.ToString());
        //}

        //protected override void OnViewModelPropertyChanged(PropertyChangedEventArgs e)
        //{
        //    if (ViewModel is not ProjectExplorerViewModel viewModel)
        //    {
        //        return;
        //    }

        //    var name = e.PropertyName;
        //    switch (name)
        //    {
        //        case nameof(viewModel.IsTreeBeingEdited):
        //            if (viewModel.IsTreeBeingEdited)
        //            {
        //                TreeGrid.View.BeginInit(TreeViewRefreshMode.DeferRefresh);
        //            }
        //            else
        //            {
        //                TreeGrid.View.EndInit();
        //            }
        //            break;
        //    }
        //}

        #endregion Constructors

        public void ExpandChildren()
        {
            if (ViewModel is not ProjectExplorerViewModel viewModel)
            {
                return;
            }

            var model = viewModel.SelectedItem;
            var node  = TreeGrid.View.Nodes.GetNode(model);

            TreeGrid.ExpandAllNodes(node);
        }
 public void ExpandAll() => TreeGrid.ExpandAllNodes();