private TreeViewItem CreateUIItem(XElement xItem) { string documentTypeName = xItem.Attribute(XrmUri.TypeAttributeName).Value; var docTypeDescriptor = documentTypeDescriptors.FirstOrDefault(d => d.DocumentTypeName == documentTypeName); XrmNodeHeader uiItemHeader = new XrmNodeHeader(xItem, docTypeDescriptor.GetIconSource()); TreeViewItem uiItem = new TreeViewItem { Tag = uiItemHeader, Header = uiItemHeader }; #region Create context menu uiItem.ContextMenu = new ContextMenu(); uiItem.ContextMenu.Items.Add(CreateRenameMenuItem(xItem, uiItem)); uiItem.ContextMenu.Items.Add(CreateRemoveMenuItem(xItem, uiItem)); #endregion return uiItem; }
private TreeViewItem CreateUIGroup(XElement xGroup) { XrmNodeHeader uiGroupHeader = new XrmNodeHeader(xGroup, new BitmapImage(new Uri("pack://application:,,,/XRouter.GUI;component/Resources/Actions-view-list-icons-icon.png"))); TreeViewItem uiGroup = new TreeViewItem { Tag = uiGroupHeader, Header = uiGroupHeader }; #region Create context menu uiGroup.ContextMenu = new ContextMenu(); uiGroup.ContextMenu.Items.Add(CreateAddMenuItem(xGroup, uiGroup)); uiGroup.ContextMenu.Items.Add(CreateRenameMenuItem(xGroup, uiGroup)); uiGroup.ContextMenu.Items.Add(CreateRemoveMenuItem(xGroup, uiGroup)); #endregion foreach (XElement xChildGroup in xGroup.Elements(XrmUri.GroupElementName)) { TreeViewItem uiChildGroup = CreateUIGroup(xChildGroup); uiGroup.Items.Add(uiChildGroup); } foreach (XElement xChildItem in xGroup.Elements(XrmUri.ItemElementName)) { TreeViewItem uiChildItem = CreateUIItem(xChildItem); uiGroup.Items.Add(uiChildItem); } return uiGroup; }