Issues with Eto Panel

I recently updated to Rhino 6.29. I am working on a plugin with RhinoCommon that contains one EtoPanel with all of the UI inside an Eto TreeGridView. After the update, when I opened Rhino and interacted with the tree, I get a crash error that says ‘Specified element is already the logical child of another element. Disconnect it first.’ This tree and panel had been working properly until now.

I understand that this is coming from the windows or eto framework but do not know how to proceed. Does anyone have some advice for figuring out what is causing this crash?


After lots of digging, I discovered the problem occurs when I use a CustomCell class as the DataCell in the single column of the TreeGridView. Using a TextBoxCell kept the crash from occurring. Now my question would be how do I setup the CustomCell to avoid this crash or is it a bug?

I had been using the following code which worked:
DataCell = new CustomCell
{
CreateCell = (args) => (returns a newly constructed panel depending on the type of the args.Item)
ConfigureCell = (args, control) => control.DataContext = args.Item;
}

This indeed broke all of my gridview and treegridview implementations.

@curtisw - is this something you can help with?

Hey @jakemurphy0118,

This is probably a bug, could you try Rhino 6.30 to see if it is fixed there? Some additional changes were done that may already fix this issue. If it still happens in 6.30 please let me know and we’ll try to get that fixed up.

Still happens in 6.30. Thank you.