Пример #1
0
        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);
        }
Пример #2
0
        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]")
                        };
                    }
                }
            });
        }