在集合视图中对不同类型的项目进行分组和显示 – Xamarin Forms

我想做一个日记类型的gui,其中的条目是按日期排序的,我想从数据库中获取我的日记条目,并将同一天添加的条目进行分组,然后用标签将这些分组分开,有点像facebook messenger的聊天记录。

这就是我所想的。

    <ScrollView>
        <CollectionView ItemsSource="{Binding JournalEntries}" SelectionMode="None">
            <CollectionView.ItemTemplate>
                <DataTemplate>
                    <Label>Date</Label>
                    <CollectionView ItemsSource="{Binding}">

                    </CollectionView>
                </DataTemplate>
            </CollectionView.ItemTemplate>
        </CollectionView>
    </ScrollView>

问题是 “JournalEntry “对象可以有很多类型,比如 “Photo “就是从 “JournalEntry “衍生出来的。所以如果’JournalEntryries’集合里有一个’Photo’对象,我希望显示的是图片而不是’ToString()’文本。

  1. 什么是最好的方式来将JournalEntries分成不同的日子,这样我就可以在组上显示一个标签?

  2. 我如何在运行时决定一个对象应该显示为图像还是文本?

希望得到任何帮助。

解决方案:

以下是答案:-

  1. 你可以使用 JournalEntries.GroupBy(x=> x.date).ToDictionary(). 为此,你必须使用System.Ling.Ling函数。这将返回一个Dictionary,其Key将是Date,所有的条目在Value中以List的形式出现。这将使你更容易使用。

  2. 你可以在运行时使用DataTemplateSelector或转换器来选择一个选项。使用DataTemplateSelector,你必须为图像和文本分别制作两个DataTemplate。对于转换器,你必须根据来自ServerDatabase的数据来切换可见性。

如果有进一步的疑问,请告诉我。我可以帮你解决这个问题

给TA打赏
共{{data.count}}人
人已打赏
未分类

在php中如何在一个数组中传递多个函数参数?

2022-9-8 19:37:20

未分类

React js:我需要在chrome浏览器中打开文件而不是下载,例如:点击docx,excel,pdf,zip文件在推荐的应用程序中打开。

2022-9-8 19:37:22

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索