Esempio n. 1
0
        private void CreateTypedDescendant(TreeViewItem root, NetworkNode node, NetworkEdgeType currentType)
        {
            string str = Utils.ConvertToResourcesType(currentType) + "TemplateKey";
            DataTemplate template = Application.Current.TryFindResource(str) as DataTemplate;
            str = Utils.ConvertToResourcesType(currentType) + "ItemTemplateKey";
            DataTemplate itemTemplate = Application.Current.TryFindResource(str) as DataTemplate;

            var edges = node.GetTypedOutGoingEdges(currentType);
            foreach(var edge in edges)
            {
                TreeViewItem linkRoot = new TreeViewItem();
                linkRoot.Header = Utils.ConvertType(edge.Type);
                linkRoot.HeaderTemplate = template;
                linkRoot.ContextMenu = _linkMenu;
                linkRoot.Uid = edge.Id.ToString();

                LoadItemState(edge.Id, node, linkRoot);

                root.Items.Add(linkRoot);

                NetworkNode nodeDesc = edge.EndNode;
                TreeViewItem nodeTreeItem = CreateNodeItem(nodeDesc, itemTemplate);

                LoadItemState(nodeDesc.Id, edge, nodeTreeItem);

                linkRoot.Items.Add(nodeTreeItem);
            }
        }