子列表未绑定到 xamarin 表单中的 ListView 分组

Posted

技术标签:

【中文标题】子列表未绑定到 xamarin 表单中的 ListView 分组【英文标题】:Sub list is not binding to ListView grouping in xamarin forms 【发布时间】:2021-10-26 11:36:22 【问题描述】:

我正在 xamarin 表单中实现列表视图分组,以在列表视图中显示列表。我需要在标题下显示一个标题和一个列表。

型号:

public class ActivityHistoryDetails
    
        public string EventDate  get; set; 
        public List<History> History  get; set; 
    
   

我正在将“ActivityHistoryDe​​tails”类型的列表绑定到列表视图。

现在我可以只显示带有此代码的标题。子列表不具有约束力。

【问题讨论】:

【参考方案1】:

有需要的可以参考这个link。

根据你的代码,我写了一个可运行的,最小化的例子供你参考,你可以参考它来修改你的代码。

这是History 类:

public class History

    public string ZoneId  get; set; 
    public string ZoneComment  get; set; 
    public string EventRptId  get; set; 
    public string EventDate  get; set; 
    public string EventTime  get; set; 
    public string EventDescription  get; set; 
    public int StoreId  get; set; 

    public History(string zoneId, string zoneComment, string eventRptId, string eventDate, string eventTime, string eventDescription, int storeId)
    
        ZoneId = zoneId;
        ZoneComment = zoneComment;
        EventRptId = eventRptId;
        EventDate = eventDate;
        EventTime = eventTime;
        EventDescription = eventDescription;
        StoreId = storeId;
    

这是ActivityHistoryDetails 类:

public class ActivityHistoryDetails : List<History>

    public string EventDate  get; set; 
    public static IList<ActivityHistoryDetails> All  private set; get; 

    public ActivityHistoryDetails(string EventDate)
    
        this.EventDate = EventDate;
    

    static ActivityHistoryDetails() 
    
        List<ActivityHistoryDetails> Groups = new List<ActivityHistoryDetails>
        
            new ActivityHistoryDetails ("aaa")
            
                new History("test","test","test","test","test","test",1),
                new History("test1","test1","test1","test1","test1","test1",2)
            ,
            new ActivityHistoryDetails ("bbb")
            
                new History("test2","test2","test2","test2","test2","test2",3),
                new History("test3","test3","test3","test3","test3","test3",4)
            
        ;
        All = Groups;
    

使用GroupedView.ItemsSource = ActivityHistoryDetails.All; 进行数据绑定。

xaml 代码与您提供的代码相同。

截图如下:

【讨论】:

只要是列表,不一定是静态的。 根据你的代码,你的 res 是 List 吗? 那我们需要绑定List,然后就可以直接绑定xaml了。 你可以看看我的代码。我根据您的代码对其进行了调整,即使 xaml 也没有对其进行修改。截图中的“aaa”和“bbb”是分组,对应“EventDate” 根据我的代码,Groups是多个ActivityHistoryDe​​tails数据,ActivityHistoryDe​​tails中的EventDate是动态数组的头部。您甚至可以完全复制我的代码,只需正确添加 Groups 的值即可绑定动态数组。

以上是关于子列表未绑定到 xamarin 表单中的 ListView 分组的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin Forms Switch Toggled 事件未与视图模型绑定

Xamarin 表单从 listview 绑定到 viewmodel

绑定 xamarin 表单选择器值的正确方法

将多个类的数据绑定到单个列表视图/xamarin 表单

来自List的Xamarin绑定,c#中的查询列表

Xamarin 表单未实现绑定