TreeGridView scroll performance


I have a TreeGrid with over 600,000 items.
At startup, scrolling performance is good, but when I add a subitem the performance decreases depending on the location of the parent item.

Anyone know why and how I can fix this?


In this GIF, only parent items are loaded and children are loaded on demand when the parent is expanded

Before asking this question, I suspected my code, after a scan of the application, 95% of the processors it uses by “native code” and I don’t know if this is from Eto or WPF



I know more. @curtisw sorry to call you directly, but even though this issue is from WPF, the ETO library can fix it.

This only happens when an item is extended or collapsed and a row is selected in the grid.
except the first time.

I solve it with:

ReloadItem (item, reloadChildren: false);
ReloadItem (item);


For this test, the double-click event is:

void OnDoubleClick (object sender, GridCellMouseEventArgs e)
     var item = e.Item as TreeGridItem;
     if (item == null) return;

     item.Expanded = !item.Expanded;
     if (item.Expanded && item.Children.Count == 0) {
          item.Children.Add (new TreeGridItem (-1, "test", "any", "..."));

     ReloadItem (item, reloadChildren: false);
     ReloadItem (item);

And the same test with CellFormatting actived:


The problem persists if I use the arrow on the left side (because I can’t deactivate the selection before).
Is there a way to capture its event or hide it?

Thank you, jmv