public DataWindow(AssetWorkspace workspace, AssetContainer cont) : this() { this.workspace = workspace; AssetTypeValueField baseField = workspace.GetBaseField(cont); TreeViewItem baseItem = CreateTreeItem($"{baseField.GetFieldType()} {baseField.GetName()}"); TreeViewItem arrayIndexTreeItem = CreateTreeItem("Loading..."); baseItem.Items = new List <TreeViewItem>() { arrayIndexTreeItem }; treeView.Items = new List <TreeViewItem>() { baseItem }; SetTreeItemEvents(baseItem, cont.FileInstance, baseField); }
private void SetPPtrEvents(TreeViewItem item, AssetsFileInstance fromFile, AssetContainer cont) { item.Tag = false; var expandObs = item.GetObservable(TreeViewItem.IsExpandedProperty); expandObs.Subscribe(isExpanded => { if (isExpanded && !(bool)item.Tag) { item.Tag = true; //don't load this again if (cont != null) { AssetTypeValueField baseField = workspace.GetBaseField(cont); TreeViewItem baseItem = CreateTreeItem($"{baseField.GetFieldType()} {baseField.GetName()}"); TreeViewItem arrayIndexTreeItem = CreateTreeItem("Loading..."); baseItem.Items = new List <TreeViewItem>() { arrayIndexTreeItem }; item.Items = new List <TreeViewItem>() { baseItem }; SetTreeItemEvents(baseItem, cont.FileInstance, baseField); } else { item.Items = new List <TreeViewItem>() { CreateTreeItem("[null asset]") }; } } }); }