2017-01-25 3 views
1

Gibt es eine Möglichkeit, die Gruppenüberschriften einer Listenansicht in Xamarin-Formularen auszublenden? Ich habe versucht, die Kopfhöhe in der Vorlage festgelegt aber es funktioniert nicht:Xamarin-Formulare: hide listview GroupHeader

<ListView ItemsSource="{Binding GroupedMenuItems}" SelectedItem="{Binding SelectedMenuItem}" SeparatorVisibility="None" IsGroupingEnabled="true"> 
      <ListView.GroupHeaderTemplate> 
      <DataTemplate> 
       <ViewCell Height="1"> 
       </ViewCell> 
      </DataTemplate> 
      </ListView.GroupHeaderTemplate> 
      <ListView.ItemTemplate> 
      <DataTemplate> 
       <ImageCell Text="{Binding Title}" ImageSource="{Binding IconSource}" TextColor="#000000"/> 
      </DataTemplate> 
      </ListView.ItemTemplate> 
     </ListView> 

Ich möchte nur Trennzeichen zwischen den Gruppen zeigen.

Antwort

2

Ja! Sie müssen HasUnevenRows in Ihrem ListView auf true festlegen. Setzen Sie dann die Header-Vorlage auf eine mit der Höhe 0 mit einem leeren Gitter oder einem anderen Element.

<ListView ItemsSource="{Binding GroupedMenuItems}" SelectedItem="{Binding SelectedMenuItem}" SeparatorVisibility="None" IsGroupingEnabled="true" HasUnevenRows="True"> 
     <ListView.GroupHeaderTemplate> 
     <DataTemplate> 
      <ViewCell Height="0"> 
       <Grid/> 
      </ViewCell> 
     </DataTemplate> 
     </ListView.GroupHeaderTemplate> 
     <ListView.ItemTemplate> 
     <DataTemplate> 
      <ImageCell Text="{Binding Title}" ImageSource="{Binding IconSource}" TextColor="#000000"/> 
     </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 
+0

Vielen Dank! Beachten Sie, dass es bei UWP nicht funktioniert. (Ich habe nicht mit IOS getestet, aber es ist in Ordnung mit Android). – Ben

0

SuavePirate Antwort kann für Android arbeiten, aber für mich eine kleine Änderung erforderlich ist, um es fast auf iOS zu arbeiten. Ich musste eine ViewCell Height von 0 auf 1 ändern. Ich weiß, es ist komisch, aber aus irgendeinem Grund weigert es sich, anders zu arbeiten.

Mit dieser kleinen Änderung gab es immer noch eine 1 Pixel hohe Linie, die Gruppen voneinander trennte, was nicht ideal ist, aber gut genug für die meisten Zwecke. Ich habe versucht, diese Zeile zu verstecken, indem ich ein StackLayout in die ViewCell platzierte und die BackgroundColor auf "White" stellte. Ich habe auch versucht, ein BoxView in das Grid zu setzen und seine Farbe auf "Weiß" zu setzen, aber keiner dieser Ansätze konnte die 1 Pixel hohe Linie verbergen.

Oh, es ist immer noch viel besser als nichts.

+0

Netter Tipp Danke für das Teilen! – Ben