C# 如何在Xamarin表单中隐藏和显示列表中的项目
我想根据用户权限隐藏一个项目我想将布尔属性与GPS跟踪字段绑定,但我不知道如何做 这是密码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) },
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。