Populate TreeView directly from data object or list

I wanted to create TreeView and assign my data object as source. However it looks like there is no way to do that or I just fail to see proper way. Documentation shows example with TreeViewItemData:
var items = new List<TreeViewItemData<MyData>>(10);
but that means I need to take all nested data, convert to list of TreeViewItemData and assign as root.
I want to be able to work on actual data represenation, so when I reparent or add data to the list, it will be changed without need to reconvert everything from one object to another. Is that possible?
Alternatively to assign object holding list of root objects.

My data object:

  public class MyData
  {
      public string text = "Dummy";
      public List<MyData> children;
  }

// ...

var rootItems = new List<StateData>(10);
treeView = root.Q<TreeView>("treeView");
treeView.makeItem = CreateItem;
treeView.bindItem = BindItem;
treeView.dataSource = rootItems;