コード例 #1
0
        protected override void OnStart()
        {
            base.OnStart();

            ViewModelMenu viewModel = new ViewModelMenu(Platform.Android, Intent.Extras.GetString(NavigationService.KeyMenuIdentifier));

            SetupConnectors(viewModel);
        }
コード例 #2
0
        public PageMenu()
        {
            InitializeComponent();

            Loaded += (sender, args) =>
            {
                ViewModelMenu viewModel = new ViewModelMenu(Platform.UWP, _navigationParameters[NavigationService.KeyMenuIdentifier]);

                Toolbar.Title = _navigationParameters[NavigationService.KeyMenuLabel];
                DataContext   = viewModel;
            };
        }
コード例 #3
0
        private void SetupConnectors(ViewModelMenu viewModel)
        {
            TextView message = FindViewById <TextView>(Resource.Id.menuMessage);

            new ConnectorTextView(message, viewModel, nameof(PageMenu.Message));

            ListView listView = FindViewById <ListView>(Resource.Id.menuItems);

            List <ViewPropertyBinding> bindings = new List <ViewPropertyBinding>
            {
                new ViewPropertyBinding(Resource.Id.Title, "Label"),
                new ViewPropertyBinding(Resource.Id.Description, "Description"),
                new ViewPropertyBinding(Resource.Id.Icon, "Image")
            };

            ConnectorListView connectorListView = new ConnectorListView(this, listView, Resource.Layout.TemplateMenuItem, viewModel, viewModel.Items, bindings, "SelectedMenuItem");
        }
コード例 #4
0
        public EasyUIGrid GetUserGridMenus(EasyUIGridRequest request, List <int> userMenuId, int parentid)
        {
            int        total = 0;
            EasyUIGrid grid  = new EasyUIGrid();

            if (OperateContext.Current.UserRole.Contains(1))
            {
                grid.rows = ViewModelMenu.ToListViewModel(ModuleManager.GetPagedList(request.PageNumber, request.PageSize, ref total, m => m.isDel == false && m.moduleParentId == parentid, m => m.sort));
            }
            else
            {
                grid.rows = ViewModelMenu.ToListViewModel(ModuleManager.GetPagedList(request.PageNumber, request.PageSize, ref total, m => m.isDel == false && m.moduleParentId == parentid && userMenuId.Contains(m.moduleId), m => m.sort));
            }
            //记录总数
            grid.total = total;
            //返回ui层的菜单
            return(grid);
        }
コード例 #5
0
        public IEnumerable <ViewModelMenu> GetUserTreeMenus(EasyUITreeRequest request, string userRoles)
        {
            //返回ui层的菜单
            IEnumerable <ViewModelMenu> rootMenus = new List <ViewModelMenu>()
            {
                new ViewModelMenu()
                {
                    icon         = request.RootIcon,
                    MenuIcon     = request.RootIcon,
                    MenuParentNo = request.PidField,
                    MenuName     = "主菜单",
                    MenuNo       = request.IdField,
                    text         = "主菜单",
                    children     = (List <ViewModelMenu>)ViewModelMenu.ToListViewModel(ModuleManager.GetListBy(m => m.moduleParentId == 0))
                }
            };

            return(rootMenus);
        }
コード例 #6
0
        public override void ViewWillAppear(bool animated)
        {
            base.ViewDidAppear(animated);

            NavigationController.NavigationBar.Hidden = false;
            NavigationItem.Title = Label;

            ViewModelMenu viewModel = new ViewModelMenu(Platform.iOS, MenuIdentifier);

            new ConnectorUITextView().Connect(Message, viewModel, nameof(viewModel.Message));

            List <UITableViewCellViewBinding> tableCellBindings = new List <UITableViewCellViewBinding>
            {
                new UITableViewCellViewBinding(UITableViewCellViewIdentifier.TextLabel, nameof(MenuItem.Label)),
                new UITableViewCellViewBinding(UITableViewCellViewIdentifier.DetailTextLabel, nameof(MenuItem.Description)),
                new UITableViewCellViewBinding(UITableViewCellViewIdentifier.ImageView, nameof(MenuItem.Image)),
            };

            new ConnectorUITableView(Items, UITableViewCellStyle.Subtitle, UITableViewCellAccessory.DisclosureIndicator, viewModel, viewModel.Items, tableCellBindings, nameof(viewModel.SelectedMenuItem));
        }
コード例 #7
0
        /// <summary>
        /// 获取用户的菜单
        /// </summary>
        /// <param name="Roles"></param>
        /// <returns></returns>
        public IEnumerable <ViewModelMenu> GetUserPermissionMenus(List <int> UserMenu)
        {
            List <ViewModelMenu> menusList = new List <ViewModelMenu>();
            //获取当前角色的json菜单数据
            IEnumerable <Sample_Module> RolesMenus = new List <Sample_Module>();

            if (OperateContext.Current.UserRole.Contains(1))
            {
                RolesMenus = ModuleManager.GetListBy(m => m.isMenu == true).OrderBy(m => m.sort).ToList();
            }
            else
            {
                RolesMenus = ModuleManager.GetListBy(m => UserMenu.Contains(m.moduleId) && m.isMenu == true).OrderBy(m => m.sort).ToList();
            }
            //首先找出父级菜单
            var ParentMenus = ModuleManager.GetListBy(p => p.moduleParentId == 0).OrderBy(m => m.sort);

            foreach (Sample_Module roleMenu in ParentMenus)
            {
                //实体转化
                ViewModelMenu menu = ViewModelMenu.ToEntity(roleMenu);
                //添加子菜单
                foreach (Sample_Module childMenu in RolesMenus)
                {
                    if (childMenu.moduleParentId == roleMenu.moduleId)
                    {
                        ViewModelMenu child = ViewModelMenu.ToEntity(childMenu);
                        if (menu.children == null)
                        {
                            menu.children = new List <ViewModelMenu>();
                        }
                        menu.children.Add(child);
                    }
                }
                if (menu.children != null && menu.children.Count > 0)
                {
                    menusList.Add(menu);
                }
            }
            return(menusList);
        }
コード例 #8
0
 public MenuView(Frame frame)
 {
     InitializeComponent();
     DataContext = new ViewModelMenu(frame);
 }