コード例 #1
0
        private void CreateInstances(TreeViewItem root, NetworkNode node)
        {
            if (node.HasTypedIncomingEdges(NetworkEdgeType.IsInstance))
            {
                string str = Utils.ConvertToResourcesType(NetworkEdgeType.IsInstance) + "TemplateKey";
                DataTemplate template = Application.Current.TryFindResource(str) as DataTemplate;

                str = Utils.ConvertToResourcesType(NetworkEdgeType.IsInstance) + "ItemTemplateKey";
                DataTemplate itemTemplate = Application.Current.TryFindResource(str) as DataTemplate;

                TreeViewItem instanceRoot = new TreeViewItem();
                instanceRoot.Header = Properties.Resources.InstancesLabel;
                instanceRoot.Focusable = false;
                instanceRoot.HeaderTemplate = template;

                LoadItemState(-1, node, instanceRoot, Properties.Resources.InstancesLabel);

                root.Items.Add(instanceRoot);

                foreach (NetworkEdge edge in node.GetTypedIncomingEdges(NetworkEdgeType.IsInstance))
                {
                    NetworkNode endNode = edge.StartNode;
                    TreeViewItem nodeRoot = CreateNodeItem(endNode, itemTemplate);

                    LoadItemState(endNode.Id, node, nodeRoot);
                    CreateDescendants(nodeRoot, endNode);

                    instanceRoot.Items.Add(nodeRoot);
                }

            }
        }