Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Xamarin表单中隐藏和显示列表中的项目_C#_Android_Asp.net_Asp.net Mvc_Xamarin.forms - Fatal编程技术网

C# 如何在Xamarin表单中隐藏和显示列表中的项目

C# 如何在Xamarin表单中隐藏和显示列表中的项目,c#,android,asp.net,asp.net-mvc,xamarin.forms,C#,Android,Asp.net,Asp.net Mvc,Xamarin.forms,我想根据用户权限隐藏一个项目我想将布尔属性与GPS跟踪字段绑定,但我不知道如何做 这是密码 MenuItems = new ObservableCollection<MenuPageMenuItem>(new[] { new MenuPageMenuItem { Id = 0, Icon="ticket.png", Title = TranExtension.lang("MyTickets"), TargetType = typeof(TicketsPage) },

我想根据用户权限隐藏一个项目我想将布尔属性与GPS跟踪字段绑定,但我不知道如何做

这是密码

MenuItems = new ObservableCollection<MenuPageMenuItem>(new[]
{
new MenuPageMenuItem { Id = 0, Icon="ticket.png", Title = TranExtension.lang("MyTickets"), TargetType = typeof(TicketsPage) },

                new MenuPageMenuItem { Id = 1, Icon="todayticket.png", Title = TranExtension.lang("TodayTickets"), TargetType = typeof(TodayTicketsPage)},
                new MenuPageMenuItem { Id = 2, Icon="notsync.png", Title = TranExtension.lang("NotSyncronized"),  TargetType = typeof( NotSyncronizedpage)},
                new MenuPageMenuItem { Id = 3, Icon="location.png", Title = "Gps Tracking", TargetType = typeof( GpsTracking)},
                new MenuPageMenuItem { Id = 4, Icon="settings.png", Title = TranExtension.lang("Configuration"), TargetType = typeof(ConfigurationPage)},
                new MenuPageMenuItem { Id = 5, Icon="error.png", Title = TranExtension.lang("Close"), TargetType=typeof(ExitPage) },                 
            });
        }
MenuItems=新的ObservableCollection(新[]
{
新菜单项{Id=0,Icon=“ticket.png”,Title=trantextension.lang(“MyTickets”),TargetType=typeof(TicketsPage)},
新菜单项{Id=1,Icon=“todayticket.png”,Title=trantextension.lang(“TodayTickets”),TargetType=typeof(TodayTicketsPage)},
新菜单项{Id=2,Icon=“notsync.png”,Title=trantextension.lang(“NotSyncronized”),TargetType=typeof(NotSyncronizedpage)},
新菜单项{Id=3,Icon=“location.png”,Title=“Gps跟踪”,TargetType=typeof(GpsTracking)},
新的菜单项{Id=4,Icon=“settings.png”,Title=trantextension.lang(“配置”),TargetType=typeof(ConfigurationPage)},
新的菜单项{Id=5,Icon=“error.png”,Title=trantextension.lang(“Close”),TargetType=typeof(ExitPage)},
});
}

您需要在
菜单管理项
模型中添加一个可启用的属性

 public class MenuPageMenuItem
    {
        public int Id { get; set; }
        public string Icon { get; set; }
        public string Title { get; set; }
        public bool IsEnable { get; set; }

        //your properites
    }
    public class ClassName
    {
        public List<MenuPageMenuItem> MenuItems;
        public ObservableCollection<MenuPageMenuItem> MenuItemsObs { get; set; }
        public ClassName()
        {
            MenuItemsObs = new ObservableCollection<MenuPageMenuItem>();
            MenuItems = new List<MenuPageMenuItem>(new[]
            {
                new MenuPageMenuItem { Id = 0,IsEnable =true , Icon="ticket.png", Title = TranExtension.lang("MyTickets"), TargetType = typeof(TicketsPage)},
                new MenuPageMenuItem { Id = 1,IsEnable =true ,Icon="todayticket.png", Title = TranExtension.lang("TodayTickets"), TargetType = typeof(TodayTicketsPage) },
                new MenuPageMenuItem { Id = 2,IsEnable =true , Icon="notsync.png", Title = TranExtension.lang("NotSyncronized"),  TargetType = typeof(NotSyncronizedpage)},
                new MenuPageMenuItem { Id = 3,IsEnable =true , Icon="location.png", Title = "Gps Tracking", TargetType = typeof(GpsTracking)},
                new MenuPageMenuItem { Id = 4,IsEnable =true , Icon="settings.png", Title = TranExtension.lang("Configuration"), TargetType = typeof(ConfigurationPage)},
                new MenuPageMenuItem { Id = 5,IsEnable =true , Icon="error.png", Title = TranExtension.lang("Close"), TargetType=typeof(ExitPage) },
            });
            SetMenuItems(MenuItems);
        }

        private void SetMenuItems(List<MenuPageMenuItem> menuItems)
        {
            foreach (var item in menuItems)
            {
                if (item.IsEnable)
                    MenuItemsObs.Add(item);
            }
        }
    }

公共类菜单管理项
{
公共int Id{get;set;}
公共字符串图标{get;set;}
公共字符串标题{get;set;}
公共bool是可启用的{get;set;}
//你的财产
}
公共类类名
{
公共列表菜单项;
公共ObservableCollection MenuItemsObs{get;set;}
公共类名()
{
MenuItemsObs=新的ObservableCollection();
MenuItems=新列表(新[]
{
新菜单项{Id=0,IsEnable=true,Icon=“ticket.png”,Title=trantextension.lang(“MyTickets”),TargetType=typeof(TicketsPage)},
新菜单项{Id=1,IsEnable=true,Icon=“todayticket.png”,Title=trantextension.lang(“TodayTickets”),TargetType=typeof(TodayTicketsPage)},
新菜单项{Id=2,IsEnable=true,Icon=“notsync.png”,Title=trantextension.lang(“NotSyncronized”),TargetType=typeof(NotSyncronizedpage)},
新菜单项{Id=3,IsEnable=true,Icon=“location.png”,Title=“Gps跟踪”,TargetType=typeof(GpsTracking)},
新菜单项{Id=4,IsEnable=true,Icon=“settings.png”,Title=trantextension.lang(“配置”),TargetType=typeof(ConfigurationPage)},
新菜单项{Id=5,IsEnable=true,Icon=“error.png”,Title=trantextension.lang(“Close”),TargetType=typeof(ExitPage)},
});
设置菜单项(菜单项);
}
私有无效集合菜单项(列表菜单项)
{
foreach(菜单项中的var项)
{
如果(项目.IsEnable)
MenuItemsObs.Add(项目);
}
}
}

但我想隐藏特定的ID您可以根据逻辑从
SetMenuItems
功能中隐藏特定的对象您可以根据用户权限选择是否将MenuPageEnumItem添加到MenuItems。