Xamarin.Forms:GroupHeaderTemplate不可见,项目也不可见,但似乎部分呈现

时间:2015-06-13 03:26:54

标签: c# android listview xamarin xamarin.forms

我在Xamarin.Forms中有一个GroupHeaderTemplate用于未呈现的ListView元素。您可以选择标题,然后拉出快捷菜单。如果我使用ListView元素GroupDisplayBinding的属性,我可以成功渲染组,但是当我指定ListView的GroupHeaderTemplate属性时,没有任何渲染。在这两种情况下,我的ListView ItemTemplate都不呈现。如果我删除标题,则ItemTemplate将按预期呈现。

<ResourceDictionary>
      <local:DateConverter x:Key="dateConverter" />
    </ResourceDictionary>
  </ContentPage.Resources>   
<ListView x:Name="barGraphListView" ItemsSource="{x:Static local:BarGraphModelColl.bgModelColl}"
              IsGroupingEnabled="True"
              HasUnevenRows="True" HorizontalOptions="FillAndExpand" VerticalOptions="EndAndExpand">
      <ListView.GroupHeaderTemplate>
        <DataTemplate>
          <ViewCell Height="25">
            <Label Text="{Binding Date, Converter={StaticResource dateConverter}}" TextColor="White" />
          </ViewCell>
        </DataTemplate>
      </ListView.GroupHeaderTemplate>
      <ListView.ItemTemplate>
        <DataTemplate>
            <StackLayout Orientation="Vertical" Padding="0,10">
              <Label Text="{Binding DataCategory}" />
              <BoxView WidthRequest="{Binding BarHeight}" HorizontalOptions="Start" Color="Blue" HeightRequest="20" />
            </StackLayout>
        </DataTemplate>
      </ListView.ItemTemplate>
    </ListView>

这是我的转换器

class DateConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo cultureInfo)
    {
        DateTime dateTime = (DateTime)value;
        return String.Format("{0:dddd, MMMM d, yyyy}", dateTime);
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo cultureInfo)
    {
        throw new NotImplementedException();
    }
}

1 个答案:

答案 0 :(得分:1)

您需要在ListView上指定GroupDisplayBinding属性,以便它知道要显示和绑定的内容。您可能希望在此处使用我的分组,您甚至不需要使用转换器,因为它只是您的密钥。

http://motzcod.es/post/94643411707/enhancing-xamarin-forms-listview-with-grouping