Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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
Xaml Xamarin母版页-在菜单中显示/隐藏分隔符行_Xaml_Xamarin_Xamarin.forms - Fatal编程技术网

Xaml Xamarin母版页-在菜单中显示/隐藏分隔符行

Xaml Xamarin母版页-在菜单中显示/隐藏分隔符行,xaml,xamarin,xamarin.forms,Xaml,Xamarin,Xamarin.forms,如何在母版页的菜单中显示/隐藏分隔符行?目前,所有线路似乎都已启用,但我不知道它们来自何处。我想禁用除“Slaap”和“Persoonlike gegevens”之间的行之外的所有行。在这张图片中,看起来只有两条线,但实际上你可以清楚地看到它们 母版页.xaml <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2

如何在母版页的菜单中显示/隐藏分隔符行?目前,所有线路似乎都已启用,但我不知道它们来自何处。我想禁用除“Slaap”和“Persoonlike gegevens”之间的行之外的所有行。在这张图片中,看起来只有两条线,但实际上你可以清楚地看到它们

母版页.xaml

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:local="clr-namespace:TimeToSport.Views"
         xmlns:local1="clr-namespace:TimeToSport.Views"
         x:Class="TimeToSport.Views.Main.MasterPage"
         Padding="0,0,0,0" Title="Time To Sport">
<StackLayout>
    <Image Source="HeaderBackground.png" Margin="0,0,0,15"/>
    <ListView x:Name="listView" x:FieldModifier="public">
        <ListView.ItemsSource>
            <x:Array Type="{x:Type local:MasterPageItem}">
                <local1:MasterPageItem Title="Home" IconSource="contacts.png" TargetType="{x:Type local:ItemsPage}" />
                <local1:MasterPageItem Title="Sport" IconSource="contacts.png" TargetType="{x:Type local:SportPage}" />
                <local1:MasterPageItem Title="Voeding" IconSource="reminders.png" TargetType="{x:Type local:VoedingPage}" />
                <local1:MasterPageItem Title="Slaap" IconSource="todo.png" TargetType="{x:Type local:SlaapPage}" />
                <local1:MasterPageItem Title="Persoonlijke Gegevens" IconSource="todo.png" TargetType="{x:Type local:GegevensGewichtDoel}"/>
            </x:Array>
        </ListView.ItemsSource>
        <ListView.ItemTemplate>
            <DataTemplate>
                <ViewCell>
                    <Grid Padding="5,10">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="30"/>
                            <ColumnDefinition Width="*" />
                        </Grid.ColumnDefinitions>
                        <Image Source="{Binding IconSource}" />
                        <Label Grid.Column="1" Text="{Binding Title}" FontSize="17" />
                    </Grid>
                </ViewCell>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</StackLayout>
</ContentPage>

首先,您的列表视图应具有
分隔符visibility=None

在您的
local:MasterPageItem
中添加一个新属性
IsSeparator
,以确定将分隔哪个元素

然后,在listview中

<ListView x:Name="listView" SeparatorVisibility="None" x:FieldModifier="public">
        <ListView.ItemsSource>
            <x:Array Type="{x:Type local:MasterPageItem}">
                <local1:MasterPageItem Title="Home" IconSource="contacts.png" TargetType="{x:Type local:ItemsPage}" />
                <local1:MasterPageItem Title="Sport" IconSource="contacts.png" TargetType="{x:Type local:SportPage}" />
                <local1:MasterPageItem Title="Voeding" IconSource="reminders.png" TargetType="{x:Type local:VoedingPage}" />
                <local1:MasterPageItem IsSeparator="true" Title="Slaap" IconSource="todo.png" TargetType="{x:Type local:SlaapPage}" />
                <local1:MasterPageItem Title="Persoonlijke Gegevens" IconSource="todo.png" TargetType="{x:Type local:GegevensGewichtDoel}"/>
            </x:Array>
        </ListView.ItemsSource>
        <ListView.ItemTemplate>
            <DataTemplate>
                <ViewCell>
                    <Grid Padding="5,10">
                        <Grid.RowDefinitions>
                            <RowDefinition Height ="*"/>
                            <RowDefinition Height ="1"/>
                        <Grid.RowDefinitions/>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="30"/>
                            <ColumnDefinition Width="*" />
                        </Grid.ColumnDefinitions>
                        <Image Source="{Binding IconSource}" />
                        <Label Grid.Column="1" Text="{Binding Title}" FontSize="17" />

                        <BoxView Grid.Row="1" Grid.ColumnSpan="2" HeightRequest="1" Color="Red" IsVisible="{Binding IsSeparator}">
                    </Grid>
                </ViewCell>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>


谢谢您的回复。
IsSeperator
应该只是一个布尔值吗?我这样做了,得到了以下结果:。怎么了?我忘了添加BoxView的行(即Grid.Row=“1”),请检查我编辑的答案。是的,IsSeparator只是一个bool,以便直接绑定到IsVisibleProperty@J.K.Harthoorn如果有效,不要忘记标记为正确并向上投票!:)似乎没有修复它,结果如下: