public List <SelectableNomenclatureTypeNode> GenerateGoodsGroupNodes(List <ProductGroup> groups, ProductGroup parent) { var result = new List <SelectableNomenclatureTypeNode>(); foreach (var item in groups.Where(x => x.Parent == parent)) { var subNode = new SelectableNomenclatureTypeNode(); subNode.Category = NomenclatureCategory.additional; subNode.Subject = item; subNode.Title = item.Name; subNode.Children = GenerateGoodsGroupNodes(groups, item); subNode.Children.ForEach(x => x.Parent = subNode); result.Add(subNode); } return(result); }
public EquipmentBalance() { this.Build(); UoW = UnitOfWorkFactory.CreateWithoutRoot(); var categoryList = Enum.GetValues(typeof(NomenclatureCategory)).Cast <NomenclatureCategory>().ToList(); List <SelectableNomenclatureTypeNode> items = new List <SelectableNomenclatureTypeNode>(); foreach (var cat in categoryList) { var node = new SelectableNomenclatureTypeNode(); node.Category = cat; var attr = cat.GetAttribute <DisplayAttribute>(); if (attr == null) { node.Title = cat.ToString(); } else { node.Title = attr.Name; } if (cat == NomenclatureCategory.equipment) { node.Children = GenerateEnumCategoryNodes(); } //РАСКОМЕНТИРОВАТЬ ПРИ ПЕРЕХОДЕ НА ОБЯЗАТЕЛЬНОЕ УКАЗАНИЕ ГРУППЫ У ТОВАРОВ /*if(cat == NomenclatureCategory.additional) { * var groups = uow.Session.QueryOver<ProductGroup>().List().ToList(); * node.Children = GenerateGoodsGroupNodes(groups, null); * }*/ node.Children.ForEach(x => x.Parent = node); items.Add(node); } observableItems = new GenericObservableList <SelectableNomenclatureTypeNode>(items); observableItems.ListContentChanged += ObservableItemsField_ListContentChanged; ytreeviewCategories.ColumnsConfig = FluentColumnsConfig <SelectableNomenclatureTypeNode> .Create() .AddColumn("Выбрать").AddToggleRenderer(node => node.Selected).Editing() .AddColumn("Название").AddTextRenderer(node => node.Title) .Finish(); ytreeviewCategories.YTreeModel = new RecursiveTreeModel <SelectableNomenclatureTypeNode>(observableItems, x => x.Parent, x => x.Children); }
public List <SelectableNomenclatureTypeNode> GenerateEnumCategoryNodes() { var result = new List <SelectableNomenclatureTypeNode>(); var categoryList = Enum.GetValues(typeof(SaleCategory)).Cast <SaleCategory>().ToList(); foreach (var cat in categoryList) { var node = new SelectableNomenclatureTypeNode(); node.Category = NomenclatureCategory.equipment; node.Subject = cat; var attr = cat.GetAttribute <DisplayAttribute>(); if (attr == null) { node.Title = cat.ToString(); } else { node.Title = attr.Name; } result.Add(node); } return(result); }