Beispiel #1
0
 /// <summary>
 /// 递归查询设备所属的设备类型编码
 /// </summary>
 /// <param name="smodel"></param>
 /// <returns></returns>
 private string GetEquTypeCode(SomeHierarchyViewModel smodel)
 {
     if (smodel != null)
     {
         if (smodel.Parent != null)
         {
             SomeHierarchyViewModel shv      = smodel.Parent;
             ComBoxTreeModel        cbtModel = (shv.obj as TreeNode).Target as ComBoxTreeModel;
             if (cbtModel.Type.Equals(IoConfigParam.Type_EquType))
             {
                 return(cbtModel.Code);
             }
             else
             {
                 return(GetEquTypeCode(shv));
             }
         }
         else
         {
             return(string.Empty);
         }
     }
     else
     {
         return(string.Empty);
     }
 }
        public static List<SomeHierarchyViewModel> RetornaListaCodMaeNulo(List<CM_CTABM> ListaTodosItens, List<SomeHierarchyViewModel> list)
        {
            List<SomeHierarchyViewModel> outerItems = new List<SomeHierarchyViewModel>();

            bool _addEmptyLevel = true;

            foreach (CM_CTABM c in ListaTodosItens.Where(p => p.CodMae == ""))
            {
                //Cria um item primeiro nível vazio, caso o usuário não deseje selecionar nada
                if (_addEmptyLevel)
                {
                    CM_CTABM cm = new CM_CTABM();
                    cm.Texto = "                                          ";
                    cm.CodMae = "";
                    cm.CodInt = 0;
                    cm.Codigo = "0";

                    SomeHierarchyViewModel s = new SomeHierarchyViewModel(cm.Texto, null);
                    s.ItemAtual = cm;
                    s.CodInt = cm.CodInt;
                    outerItems.Add(s);
                    list.Add(s);

                    _addEmptyLevel = false;
                }

                SomeHierarchyViewModel o = new SomeHierarchyViewModel(c.Texto, null);
                o.ItemAtual = c;
                o.CodInt = c.CodInt;
                outerItems.Add(o);
                list.Add(o);
            }

            return outerItems;
        }
Beispiel #3
0
 /// <summary>
 /// 下拉树选择改变事件
 /// </summary>
 private void comboBoxTree_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (e.AddedItems != null && e.AddedItems.Count > 0)
     {
         SomeHierarchyViewModel model = e.AddedItems[0] as SomeHierarchyViewModel;
         var             obj          = model.obj as TreeNode;
         ComBoxTreeModel treeModel    = obj.Target as ComBoxTreeModel;
         this.equCodeTextBox.Text = treeModel.Code;
         if (EquConfig != null)
         {
             EquConfig.Type = treeModel.Type;
         }
     }
 }
        //public static List<SomeHierarchyViewModel> ReturnItemsHierarchy(int tabG)
        //{
        //    ComboTreeGenericVM vm = new ComboTreeGenericVM(tabG);
        //    if (vm.Items != null)
        //        return vm.Items.OrderBy(p => p.ItemAtual.CodMae + p.ItemAtual.Codigo).ToList();
        //    else
        //        return new List<SomeHierarchyViewModel>();
        //}
        /// <summary>
        /// Retorna todos todos os itens pai do objeto, na ordem da hierarquia.
        /// </summary>
        /// <param name="sh"></param>
        /// <param name="tabm"></param>
        public static void ReturnMae(SomeHierarchyViewModel sh, List<CM_CTABM> tabm)
        {
            if (tabm == null)
                tabm = new List<CM_CTABM>();

            if (sh != null && sh.ItemAtual != null && sh.ItemAtual.CodInt > 0)
            {
                tabm.Insert(0, sh.ItemAtual);

                if (sh.Parent != null)
                    ReturnMae(sh.Parent, tabm);

            }
        }
        private static List <SomeHierarchyViewModel> RetornaListaCodMaeNulo(List <CM_CTABM> ListaTodosItens)
        {
            List <SomeHierarchyViewModel> outerItems = new List <SomeHierarchyViewModel>();

            foreach (CM_CTABM c in ListaTodosItens.Where(p => p.CodMae == ""))
            {
                SomeHierarchyViewModel o = new SomeHierarchyViewModel(c.Texto, null);
                o.ItemAtual = c;
                o.CodInt    = c.CodInt;
                o.IsChecked = c.Checked;
                outerItems.Add(o);
                Items.Add(o);
            }

            return(outerItems);
        }
        public static SomeHierarchyViewModel RetornaItemDaTree(List<SomeHierarchyViewModel> list, int codint)
        {
            if (list == null)
                return null;

            var x = list.Where(p => p.CodInt == codint).FirstOrDefault();
            SomeHierarchyViewModel z = null;

            if (x != null)
                return x;
            else
            {
                foreach (var y in list)
                {
                    if (y.Children.Count <= 0)
                        continue;

                    z = RetornaItemDaTree(y.Children, codint);

                    if (z != null)
                        return z;
                }
            }

            return null;

            //    if (list != null)
            //    {
            //        foreach (SomeHierarchyViewModel sh in list)
            //        {
            //            if (codint == 360)
            //            {

            //            }
            //            if (sh.ItemAtual.CodInt == codint)
            //                return sh;
            //            else
            //            {
            //                if (sh.Children != null && sh.Children.Count > 0)
            //                    return RetornaItemDaTree(codint, sh.Children);

            //            }
            //        }
            //    }

            //    return null;
        }
        public static void RetornaListaFilhosRecursivo(List<CM_CTABM> ListaTodosItens, SomeHierarchyViewModel s)
        {
            List<CM_CTABM> ls = ListaTodosItens.Where(p => p.CodMae == s.ItemAtual.CodMae + s.ItemAtual.Codigo).ToList();

            if (s.Children == null)
                s.Children = new List<SomeHierarchyViewModel>();

            foreach (CM_CTABM m in ls)
            {
                //Cria um objeto de hirarquia falando quem é o pai do mesmo para quando ele for selecionado
                //achar sua hierarquia certa
                SomeHierarchyViewModel hierarchy = new SomeHierarchyViewModel(m.Texto, null, s);
                hierarchy.ItemAtual = m;
                hierarchy.CodInt = m.CodInt;
                s.Children.Add(hierarchy);
                RetornaListaFilhosRecursivo(ListaTodosItens, hierarchy);
            }
        }
        public static void ReturnAllChildren(SomeHierarchyViewModel sh, List<CM_CTABM> tabm)
        {
            if (tabm == null)
                tabm = new List<CM_CTABM>();

            if (sh != null && sh.Children != null && sh.ItemAtual != null && sh.ItemAtual.CodInt > 0)
            {
                tabm.Add(sh.ItemAtual);

                if (sh.Children != null)
                {
                    foreach (SomeHierarchyViewModel s in sh.Children)
                    {
                        ReturnAllChildren(s, tabm);
                    }
                }

            }
        }
Beispiel #9
0
 /// <summary>
 /// 下拉框选择触发的事件
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void ComboBoxTreeView_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     if (e.AddedItems.Count <= 0)
     {
         return;
     }
     if (this.equConfigDataGrid.SelectedItems.Count == 1)
     {
         int         rowIndex = this.equConfigDataGrid.SelectedIndex;
         DataGridRow row      = this.equConfigDataGrid.ItemContainerGenerator.ContainerFromIndex(rowIndex) as DataGridRow;
         if (row != null)
         {
             SomeHierarchyViewModel smodel = ((EquConfigModel)this.equConfigDataGrid.SelectedItem).SelectedEqu;
             if (smodel != null)
             {
                 ComBoxTreeModel cbtModel = (smodel.obj as TreeNode).Target as ComBoxTreeModel;
                 //所选行第4列的单元格数据(赋值)
                 TextBlock tb = this.equConfigDataGrid.Columns[5].GetCellContent(row) as TextBlock;
                 if (tb != null)
                 {
                     tb.Text = cbtModel.Code;
                 }
                 //值在界面不需要显示,故而可只给属性赋值,如果要界面显示,则此处后面注释掉的代码打开即可
                 (row.Item as EquConfigModel).Type = cbtModel.Type.Equals(IoConfigParam.Type_EquType) ? "设备类型" : "设备";
                 if (cbtModel.Type.Equals(IoConfigParam.Type_EquType))
                 {
                     (row.Item as EquConfigModel).EquTypeCode = cbtModel.Code;
                 }
                 else
                 {
                     (row.Item as EquConfigModel).EquTypeCode = GetEquTypeCode(smodel);
                 }
             }
         }
     }
 }
        public SomeHierarchyViewModel(string title, List <SomeHierarchyViewModel> children, SomeHierarchyViewModel parent = null)
        {
            this.Title    = title;
            this.Parent   = parent;
            this.Children = children;

            if (this.Children != null)
            {
                this.Children.ForEach(ch => ch.Parent = this);
            }
        }