コード例 #1
0
        private void CreateTypedDescendant(TreeViewItem root, NetworkNode node, NetworkEdgeType currentType)
        {
            NetworkEdge edge = node.GetTypedOutgoingEdge(currentType);
            if (edge != null)
            {
                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;

                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);
            }
        }