如何在Xamarin主菜单中的项目之间绘制水平线?
如何在Xamarin Forms菜单项中按行分隔两项,如图所示: 我的意思是,在相同的菜单项中,我想在两组项之间画一条水平线(而不是在每个项和其他项之间,这是通过如何在Xamarin主菜单中的项目之间绘制水平线?,xamarin,xamarin.forms,Xamarin,Xamarin.forms,如何在Xamarin Forms菜单项中按行分隔两项,如图所示: 我的意思是,在相同的菜单项中,我想在两组项之间画一条水平线(而不是在每个项和其他项之间,这是通过SeparatorVisibility=“Default”完成的) 以下是cs代码: using System; using Xamarin.Forms; namespace GMG { [XamlCompilation(XamlCompilationOptions.Compile)] public partial c
SeparatorVisibility=“Default”
完成的)
以下是cs代码:
using System;
using Xamarin.Forms;
namespace GMG
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class MasterDetailPage1Master : ContentPage
{
public ListView ListView;
public MasterDetailPage1Master()
{
InitializeComponent();
BindingContext = new MasterDetailPage1MasterViewModel();
ListView = MenuItemsListView;
}
class MasterDetailPage1MasterViewModel : INotifyPropertyChanged
{
public ObservableCollection<MasterDetailPage1MenuItem> MenuItems { get; set; }
public MasterDetailPage1MasterViewModel()
{
MenuItems = new ObservableCollection<MasterDetailPage1MenuItem>(new[]
{
new MasterDetailPage1MenuItem { Id = 0, Title = "Hospitals", Icon="hosp.png", TargetType= typeof(Hospitals) },
new MasterDetailPage1MenuItem { Id = 1, Title = "Clinics", Icon="cli.png",TargetType= typeof(Clinics) },
new MasterDetailPage1MenuItem { Id = 2, Title = "Pharmacies", Icon="pha.png", TargetType= typeof(Pharma) },
new MasterDetailPage1MenuItem { Id = 3, Title = "Labs", Icon="lab2.png", TargetType= typeof(Labs) },
new MasterDetailPage1MenuItem { Id = 4, Title = "MainPage", Icon="home.png", TargetType= typeof(MasterDetailPage1Detail) },
new MasterDetailPage1MenuItem { Id = 5, Title = "Call us", Icon="cont.png" },
new MasterDetailPage1MenuItem { Id = 6, Title = "Rating App", Icon="rate.png" },
});
}
#region INotifyPropertyChanged Implementation
public event PropertyChangedEventHandler PropertyChanged;
void OnPropertyChanged([CallerMemberName] string propertyName = ""){
if (PropertyChanged == null)
return;
PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName));
}}}}
使用系统;
使用Xamarin.Forms;
名称空间GMG
{
[XamlCompilation(XamlCompilationOptions.Compile)]
公共部分类MasterDetailPage1主:ContentPage
{
公共列表视图列表视图;
公共MasterDetailPage1Master()
{
初始化组件();
BindingContext=new MasterDetailPage1MasterViewModel();
ListView=MenuItemsListView;
}
类MasterDetailPage1MasterViewModel:INotifyPropertyChanged
{
公共ObservableCollection菜单项{get;set;}
公共MasterDetailPage1MasterViewModel()
{
MenuItems=新的ObservableCollection(新[]
{
新的MasterDetailPage1MenuItem{Id=0,Title=“Hospitals”,Icon=“hosp.png”,TargetType=typeof(Hospitals)},
新的MasterDetailPage1MenuItem{Id=1,Title=“Clinics”,Icon=“cli.png”,TargetType=typeof(Clinics)},
新的MasterDetailPage1MenuItem{Id=2,Title=“Pharmacies”,Icon=“pha.png”,TargetType=typeof(Pharma)},
新的MasterDetailPage1MenuItem{Id=3,Title=“Labs”,Icon=“lab2.png”,TargetType=typeof(Labs)},
新的MasterDetailPage1MenuItem{Id=4,Title=“MainPage”,Icon=“home.png”,TargetType=typeof(MasterDetailPage1Detail)},
新建MasterDetailPage1MenuItem{Id=5,Title=“呼叫我们”,Icon=“cont.png”},
新建MasterDetailPage1MenuItem{Id=6,Title=“评级应用程序”,Icon=“rate.png”},
});
}
#区域INotifyPropertyChanged实现
公共事件属性更改事件处理程序属性更改;
void OnPropertyChanged([CallerMemberName]字符串propertyName=”“){
if(PropertyChanged==null)
返回;
调用(这是新的PropertyChangedEventArgs(propertyName));
}}}}
这是Xaml代码:
<StackLayout>
<StackLayout>
<Label Text="GMG"/>
</StackLayout>
<ListView x:Name="MenuItemsListView"
RowHeight="55"
ItemsSource="{Binding MenuItems}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout>
<Label Text="{Binding Title}"/>
<Image Source="{Binding Icon}"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ContentPage>
对不起,我的问题是,您必须在listview中放置一个BoxView并设置其可见性,例如
,例如,当您的标题到达收件箱时,将其设置为真。您可以通过循环您创建的集合并将其设置在那里来实现这一点。您的XAML代码如下所示
<StackLayout>
<StackLayout>
<Label Text="GMG"/>
</StackLayout>
<ListView x:Name="MenuItemsListView"
RowHeight="55"
ItemsSource="{Binding MenuItems}">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Vertical">
<StackLayout Orientation="Horizontal">
<Label Text="{Binding Title}"/>
<Image Source="{Binding Icon}"/>
</StackLayout>
<BoxView HeightRequest="1" Color="#00000" IsVisible="{Binding IsSeparatorVisible}"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
我在这里搜索,“如何在我的XAML代码中放置水平线?”
如果这就是你想要的,就把这个放进去:
如何使用
?@TARIQ循环浏览您创建的集合(MenuItems),并检查您点击的标题是否在需要显示分隔符的位置。
new MasterDetailPage1MenuItem { Id = 0, Title = "Hospitals", Icon="hosp.png",IsSeparatorVisible = true, TargetType= typeof(Hospitals) },
new MasterDetailPage1MenuItem { Id = 1, Title = "Clinics", Icon="cli.png",IsSeparatorVisible = false,TargetType= typeof(Clinics) },
<BoxView
HeightRequest="1"
Color="LightGray"
Margin ="40, 0, 40, 0"/>