listview - Xamarin 表单 ListView 组标题模板不起作用

标签 listview xamarin.forms grouping

我正在尝试在 xamarin 表单中使用组 header 模板 我已按照以下文章实现,但没有成功 http://motzcod.es/post/94643411707/enhancing-xamarinforms-listview-with-grouping 甚至从这里接受了建议 http://www.infinite-x.net/2015/04/08/working-with-the-listview-groupheadertemplate/

如果我放置 GroupDisplayBinding,即使我有模板,我也会得到正常的样式

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

如果我删除 GroupDisplayBinding,我将在组中获得我的组类类型,如下图所示 See the top header sthotraani.Common.Grouping that's my class

采集代码

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);
            });

集合对象

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 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);
            }
        }
    }

最佳答案

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

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

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

关于listview - Xamarin 表单 ListView 组标题模板不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38416615/

相关文章:

android - 从 viewPager 中的 fragment 隐藏父 fragment

android - 将字体设置为android中的listview项目

c# - 在 Xamarin Forms 中的选取器项上应用样式

rust - 如何在 Rust 的向量中对连续整数进行分组?

java - 如何使用共享首选项在 ListView 中保存项目

android - 滚动 ListView 时出现内存不足异常?

xamarin - 如何在 Xamarin App Shell 中获取当前的 Shell 内容页面引用?

c# - ListView 的单元格重用问题和自定义渲染器的 View 单元格

python - 如何在 Pandas 中重新采样数据帧字典(雅虎数据)?

r - 将分组的 geom_vline 添加到多个方面