Esempio n. 1
0
        /// <summary>
        /// 创建或获取相应岗位科目
        /// </summary>
        /// <param name="virtualPost"></param>
        /// <returns></returns>
        private OrderEntity CreatePostEntity(VirtualPost virtualPost, TreeViewItem treeViewItem, string strFlag)
        {
            ObservableCollection<FBEntity> listFBEntities = new ObservableCollection<FBEntity>();
            OrderEntity oeDepartment = dictDepartment[virtualPost.VirtualDepartment];

            // 已存在的岗位科目
            ObservableCollection<FBEntity> listOfSubjectDepartmentFB = oeDepartment.GetRelationFBEntities(typeof(T_FB_SUBJECTDEPTMENT).Name);

            // 1. 获取所有已启用的部门科目
            var itemsDepartmentActived = listOfSubjectDepartmentFB.Where(item =>
            {
                return (item.Entity as T_FB_SUBJECTDEPTMENT).ACTIVED == 1;
            });

            // 2. 遍历所有已启用的部门科目, 添加相应的岗位科目,已有科目的,则加上原有的,没有的,则新增

            foreach (FBEntity entityDepartment in itemsDepartmentActived)
            {
                T_FB_SUBJECTDEPTMENT sd = entityDepartment.Entity as T_FB_SUBJECTDEPTMENT;

                // 是否已有岗位科目的记录
                List<FBEntity> listPost = entityDepartment.GetRelationFBEntities(typeof(T_FB_SUBJECTPOST).Name, item =>
                {
                    return (item.Entity as T_FB_SUBJECTPOST).OWNERPOSTID == virtualPost.ID;
                });

                // 已有岗位科目,添加。没有,就新增         
                if (listPost.Count > 0)
                {
                    T_FB_SUBJECTPOST post = listPost[0].Entity as T_FB_SUBJECTPOST;
                    if (post.ACTIVED != sd.ACTIVED)
                    {
                        listPost[0].FBEntityState = FBEntityState.Modified;
                    }
                    //岗位默认处理
                    if (post != null)
                        post = SubjectPostChanged(sd, post, strFlag);
                    listPost[0].Entity = post;
                    listFBEntities.Add(listPost[0]);
                }
                else
                {
                    //临时添加防止重复数据
                    var a = staticobpost.FirstOrDefault(item => (item.Entity as T_FB_SUBJECTPOST).OWNERPOSTID == virtualPost.ID && (item.Entity as T_FB_SUBJECTPOST).T_FB_SUBJECT != null && (item.Entity as T_FB_SUBJECTPOST).T_FB_SUBJECT.SUBJECTID == sd.T_FB_SUBJECT.SUBJECTID);
                    if (a == null && sd.ACTIVED == 1)
                    {
                        FBEntity fbEntityPostNew = this.CreateSubjectPost(sd, virtualPost, strFlag);
                        listFBEntities.Add(fbEntityPostNew);

                        staticobpost.Add(fbEntityPostNew);
                    }
                    else
                    {
                        listFBEntities.Add(a);
                    }
                }
            }

            FBEntity postFBEntity = virtualPost.ToFBEntity();
            postFBEntity.AddFBEntities<T_FB_SUBJECTPOST>(listFBEntities);
            OrderEntity entityPost = new OrderEntity(postFBEntity);

            Binding binding = new Binding();
            binding.Path = new PropertyPath("Entity.Name");
            treeViewItem.SetBinding(TreeViewItem.HeaderProperty, binding);
            treeViewItem.DataContext = entityPost;
            EntityList.Add(entityPost);
            return entityPost;
        }
        private void AdditionalNodes_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
        {
            if (e.OldItems != null)
            {
                foreach (IDatabasesTreeViewAdditionalNode additionalNode in e.OldItems)
                {
                    TreeViewItem tvi = ItemContainerGenerator.ContainerFromItem(additionalNode) as TreeViewItem;

                    if (tvi != null)
                        Items.Remove(tvi);
                }
            }

            if (e.NewItems != null)
            {
                foreach (IDatabasesTreeViewAdditionalNode additionalNode in e.NewItems)
                {
                    TreeViewItem tvi = new TreeViewItem();
                    tvi.Header = additionalNode.Name;
                    tvi.ItemTemplate = Application.Current.TryFindResource(additionalNode.DataTemplate) as DataTemplate;

                    Binding binding = new Binding("Items");
                    binding.Source = additionalNode;
                    tvi.SetBinding(TreeViewItem.ItemsSourceProperty, binding);

                    Items.Add(tvi);
                }
            }
        }
        private TreeViewItem createTreeViewNodeForToolButton(ToolType toolType, ButtonDisplayInfo dataContext)
        {
            TreeViewItem node = new TreeViewItem()
            {
                Header = dataContext,
                Tag = toolType,
                HeaderTemplate = ToolbarControlNodeDataTemplate,
                ItemContainerStyle = LayoutRoot.Resources["TreeViewItemStyle"] as Style
            };
            // Use item description (if any) for the tooltip
            if (!String.IsNullOrEmpty(dataContext.Description))
            {
                System.Windows.Data.Binding b = new System.Windows.Data.Binding("Description") { Source = dataContext };
                node.SetBinding(ToolTipService.ToolTipProperty, b);
            }

            return node;
        }
Esempio n. 4
0
 private TreeViewItem CreateNodeItem(NetworkNode endNode, DataTemplate itemTemplate)
 {
     TreeViewItem nodeRoot = new TreeViewItem();
     Binding nodeBinding = new Binding();
     nodeBinding.Source = endNode;
     nodeBinding.Path = new PropertyPath("Name");
     nodeBinding.Converter = new NodeNameConverter();
     nodeRoot.SetBinding(TreeViewItem.HeaderProperty, nodeBinding);
     nodeRoot.Uid = endNode.Id.ToString(CultureInfo.InvariantCulture);
     nodeRoot.ContextMenu = _nodeMenu;
     nodeRoot.HeaderTemplate = itemTemplate;
     return nodeRoot;
 }