Listview Xamarin表单列表视图组标题模板不工作

Listview Xamarin表单列表视图组标题模板不工作,listview,xamarin.forms,grouping,Listview,Xamarin.forms,Grouping,我正在尝试在xamarin表单中使用组头模板 我遵循了下面的文章并实现了它,但没有成功 甚至从这里得到了建议 如果我使用GroupDisplayBinding,我将获得正常样式,即使我有模板 <ListView.GroupHeaderTemplate> <ViewCell> <StackLayout VerticalOptions="FillAndExpand" Bac

我正在尝试在xamarin表单中使用组头模板 我遵循了下面的文章并实现了它,但没有成功 甚至从这里得到了建议

如果我使用GroupDisplayBinding,我将获得正常样式,即使我有模板

<ListView.GroupHeaderTemplate>
        <ViewCell>
            <StackLayout
              VerticalOptions="FillAndExpand"
              BackgroundColor="#009688">
              <Label  Text="{Binding Key}"  TextColor="White" Margin="10" FontSize="Medium" />
            </StackLayout>
        </ViewCell>
      </ListView.GroupHeaderTemplate>

如果我删除GroupDisplayBinding,我将在组中获得我的组类类型,如图所示

收集代码

private ObservableCollection<Grouping<string, MFullIssue>> _Issues;
        public ObservableCollection<Grouping<string, MFullIssue>> Issues
        {
            get { return _Issues; }
            set { _Issues = value; OnPropertyChanged(); }
        }

 SthotramService.service.Issues().ContinueWith((t) =>
            {
                var sorted = from c in t.Result
                             orderby c.IssueTypeName
                             group c by c.IssueTypeName
                             into theGroup
                             select new Grouping<string, MFullIssue>(theGroup.Key, theGroup);

                Issues = new ObservableCollection<Grouping<string, MFullIssue>>(sorted);
            });
私人可观察收集问题;
公开收集问题
{
获取{return\u Issues;}
设置{u Issues=value;OnPropertyChanged();}
}
SthotramService.service.Issues().ContinueWith((t)=>
{
var排序=从c到t。结果
由c.IssueTypeName订购
c组由c.IssueTypeName
入组
选择新分组(group.Key,组);
问题=新的可观察收集(已排序);
});
收集对象

public class MFullIssue
    {
        public int IssueID { get; set; }
        public int IssueTypeID { get; set; }
        public string Issue { get; set; }
        public int DisplayOrder { get; set; }
        public bool IsActive { get; set; }
        public string IssueTypeName { get; set; }
        public string IssueTypeDesc { get; set; }
        public List<MResolution> Resolutions { get; set; }
    }
公共类问题
{
public int IssueID{get;set;}
public int IssueTypeID{get;set;}
公共字符串问题{get;set;}
公共int显示顺序{get;set;}
公共bool IsActive{get;set;}
公共字符串IssueTypeName{get;set;}
公共字符串IssueTypeDesc{get;set;}
公共列表解析{get;set;}
}
分组类

public class Grouping<K,T>:ObservableCollection<T>
    {
        public K Key { get; private set; }

        public Grouping(K key, IEnumerable<T> items)
        {
            Key = key;
            foreach (var item in items)
            {
                Items.Add(item);
            }
        }
    }
公共类分组:ObservableCollection
{
公钥{get;private set;}
公共分组(K键,IEnumerable项)
{
钥匙=钥匙;
foreach(项目中的var项目)
{
项目。添加(项目);
}
}
}

查看我的分组ListView代码,您的
GroupHeaderTemplate
需要是一个
DataTemplate
。不确定这是否是根本问题,但如果不是,以后肯定会导致问题:

<ListView.GroupHeaderTemplate>
    <DataTemplate>
        <ViewCell>
            ...

...

除此之外,,我看不到您的代码有任何问题,因此您可能需要确保
ObservableCollection
中的组看起来正确。

请显示包含绑定到的集合的代码以及集合中对象的类型。@hvaughan3首先根据文档用集合代码更新了帖子GroupHeaderTemplate与ListView.GroupDisplayBinding互斥。设置此属性将ListView.GroupDisplayBinding设置为null。然而,我的问题是listview完全忽略了Groupheadertemplate,而不考虑我在文章中提到的displaybinding。如果我使用displaybinding,我将以默认样式获取名称。如果我不使用displaybinding,我将以标题获取类名。我认为listview-->Groupheadertemplate中存在错误,但我不确定。我已经尝试了所有的可能性。listview正在忽略groupheadertemplate。@可能是这样。这对我来说很好。虽然我没有在LINQ中使用Grouping对象,而是创建了一个单独的模型来保存这些组,就像示例中的Xamarin所示。即使我也这样做了,为它创建了一个单独的类。你看到我上面的代码有错误吗?这就是我正在使用的。更新了分组类Hey it's working:)不确定是什么引起的,可能是我丢失的标签。但我确信我之前使用过datatemplate。但它现在起作用了。非常感谢你。