TreeViewItem AddPathToTreeItem(TreeViewItem item, AkWwiseProjectData.AkInformation AkInfo) { TreeViewItem parentItem = item; string path = "/" + RootItem.Header + "/" + item.Header; for (int i = 0; i < AkInfo.PathAndIcons.Count; i++) { AkWwiseProjectData.PathElement PathElem = AkInfo.PathAndIcons[i]; TreeViewItem childItem = parentItem.FindItemByName(PathElem.ElementName); path = path + "/" + PathElem.ElementName; if (childItem == null) { if (i != AkInfo.PathAndIcons.Count - 1) { childItem = parentItem.AddItem(PathElem.ElementName, new AkTreeInfo(0, Guid.Empty.ToByteArray(), PathElem.ObjectType), GetExpansionStatus(path)); } else { bool isDraggable = !(PathElem.ObjectType == AkWwiseProjectData.WwiseObjectType.STATEGROUP || PathElem.ObjectType == AkWwiseProjectData.WwiseObjectType.SWITCHGROUP); childItem = parentItem.AddItem(PathElem.ElementName, isDraggable, GetExpansionStatus(path), new AkTreeInfo(AkInfo.ID, AkInfo.Guid, PathElem.ObjectType)); } } AddHandlerEvents(childItem); parentItem = childItem; } return(parentItem); }