2017-01-25 10 views
1

Xamarinフォームのリストビューのグループヘッダーを非表示にする方法はありますか? 私は、テンプレートのヘッダの高さを設定しようとしたが、それは動作しますしません:Xamarinフォーム: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> 

私は唯一のグループ間の区切りを示したいと思います。

答えて

2

ListViewでHasUnevenRowsをtrueに設定する必要があります。ヘッダーテンプレートを高さ0のViewCellに空のグリッドまたは他の要素で設定します。

<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

ありがとうございました! UWPでは動作しないことに注意してください。 (私はIOSでテストしていませんが、Androidでは大丈夫です)。 – Ben

0

SuavePirateの回答はAndroidではうまくいくかもしれませんが、ほとんどの場合、iOSでほとんど動作するように変更する必要があります。私はViewCell Heightを0から1に変更しなければならなかった。私は知っています、それは変ですが、何らかの理由で別の方法では動作しません。

この小さな変更では、グループを分離する1ピクセルの高線がありました。これは理想的ではありませんが、ほとんどの目的には十分です。私はViewCellの内部にStackLayoutを置き、BackgroundColorを "White"に設定してその行を隠そうとしました。また、Grid内にBoxViewを配置し、そのColorを「White」に設定しようとしましたが、どちらのアプローチも1ピクセル高いラインを隠すことに成功しませんでした。

まあ、それはまだ何よりもずっと優れています。

+0

良いヒントをお寄せいただきありがとうございます! – Ben

関連する問題