private void InitParentTree() { var nodeContext = DataContext as XamDataTreeNodeDataContext; if (nodeContext == null) { return; } if (_parentTree == null) { _parentTree = nodeContext.Node.NodeLayout.Tree.FindParent <FreeHierarchyTree>(); if (_parentTree != null) { TreeMode = _parentTree.TreeMode; } } }
/// <summary> /// Подгрузчик дерева /// </summary> /// <param name="freeHierarchyTypeTreeItem"></param> /// <param name="isFullReload"></param> public TreeStartLoader(FreeHierarchyTree tree, FreeHierarchyTypeTreeItem freeHierarchyTypeTreeItem, HashSet <long> selectedNodes, bool isFullReload = false, HashSet <int> singreRootFreeHierItemIds = null) { if (freeHierarchyTypeTreeItem == null || tree == null) { return; } var d = new FreeHierarchyTreeDescriptor { //TreeID = freeHierarchyTypeTreeItem.FreeHierTree_ID, FilterStatus = tree.FilterStatus, TreeHashId = GetHashCode(), IsSelectSingle = tree.IsSelectSingle, ShowUspdAndE422InTree = tree.ShowUspdAndE422InTree, IsHideSelectMany = tree.IsHideSelectMany, NeedFindTransformatorsAndreactors = tree.IsShowTransformatorsAndReactors, NeedFindTI = !tree.IsHideTi && (freeHierarchyTypeTreeItem.FreeHierTree_ID >= GlobalFreeHierarchyDictionary.TreeTypeStandartPS || freeHierarchyTypeTreeItem.FreeHierTree_ID == GlobalFreeHierarchyDictionary.TreeTypeStandartTIFormula || freeHierarchyTypeTreeItem.FreeHierTree_ID == GlobalFreeHierarchyDictionary.TreeTypeStandartDistributingArrangementAndBusSystem), IsHideTp = tree.IsHideTp, PermissibleForSelectObjects = tree.PermissibleForSelectObjects, FreeHierarchyTree = tree, }; try { Descriptor = d; FreeHierarchyTypeTreeItem = freeHierarchyTypeTreeItem; FreeHierarchyTreeItems = GlobalFreeHierarchyDictionary.GetTree(d, out IsFirstLoaded, tree.IsHideTi, selectedNodes, isFullReload, singreRootFreeHierItemIds); } catch (Exception ex) { Manager.UI.ShowMessage(ex.Message); } }
private void InitVisual() { var nodeContext = DataContext as XamDataTreeNodeDataContext; if (nodeContext == null) { return; } var item = nodeContext.Data as FreeHierarchyTreeItem; if (_parentTree == null) { _parentTree = nodeContext.Node.NodeLayout.Tree.TryFindResource("treeModule") as FreeHierarchyTree; //.FindParent<FreeHierarchyTree>(); } #region Определяемся нужно ли пересоздавать контрол var isRecreateControl = _freeHierarchyTreeItem == null || item == null; if (!isRecreateControl) { var oldTypeFound = false; var newTypeFound = false; isRecreateControl = true; foreach (var notRecreatableType in _notRecreatableTypes) { if (!oldTypeFound && notRecreatableType == _freeHierarchyTreeItem.FreeHierItemType) { oldTypeFound = true; } if (!newTypeFound && notRecreatableType == item.FreeHierItemType) { newTypeFound = true; } if (oldTypeFound && newTypeFound) { isRecreateControl = false; break; } } } #endregion _freeHierarchyTreeItem = item; if (_freeHierarchyTreeItem == null || _freeHierarchyTreeItem.Descriptor == null) { return; } //MainLayout.DataContext = _freeHierarchyTreeItem; if (_outerSelector == null && _parentTree != null && _parentTree.OuterSelector != null) { _outerSelector = _parentTree.OuterSelector; } //if (_freeHierarchyTreeItem.UpdateItemContent == null) //{ // _freeHierarchyTreeItem.UpdateItemContent = UpdateItemContent; //} if (_parentTree == null) { return; } _treeDescriptor = _parentTree.GetDescriptor(); if (_treeDescriptor == null) { return; } bool isHideStandartIcon = false; //если указана пользовательская иконка то скрываем стандартные if (item != null && item.NodeIcon_ID != null) { isHideStandartIcon = true; DictNodeIcon imgBytes; GlobalTreeDictionary.DictNodeIconList.TryGetValue(item.NodeIcon_ID ?? 0, out imgBytes); if (imgBytes != null) { UserImage.Source = imgBytes.DataImage; } UserImage.Visibility = Visibility.Visible; } else if (UserImage.Visibility == Visibility.Visible) { UserImage.Visibility = Visibility.Collapsed; //TODO } //if (ccLayout.Content != null) DisposeControlContent(); UpdateItemContent(_freeHierarchyTreeItem, isRecreateControl, isHideStandartIcon); //ccLayout.Content = _freeHierarchyTreeItem.Name; }
public void Dispose() { _parentTree = null; }