gpt4 book ai didi

xaml - LongListSelector 日期分组列表

转载 作者:行者123 更新时间:2023-11-30 23:57:11 26 4
gpt4 key购买 nike

使用 LongListSelector 对日期进行分组的 Windows Phone 8 SDK 问题。我熟悉 grouping on letters 的 AlphaKeyGroup 辅助方法。 .

有没有人做过/看过类似的日期写的类似语言环境的文章? (数字也是加分项)

最佳答案

所以我在这个问题上也有点挣扎,因为你提到的 MSDN 中的 AlphaKeyGroup 示例比本地化需要的要复杂得多。您要做的是创建一个新的 List 对象,该对象具有一个额外的属性,即 Key。此 Key 属性是您分组的名称。在 AlphaKeyGroup 示例中,它是您所在地区字母表中的每个字母。因此,创建您自己的继承自 List 的组对象。

public class TimeKeyGroup<T> : List<T>
{
/// <summary>
/// The Key of this group.
/// </summary>
public string Key { get; private set; }

public TimeKeyGroup(string key)
{
Key = key;
}
}

现在创建一个名为 CreateGroups 的方法,该方法接受您要分组的对象的 IEnumerable,并返回您刚刚创建的自定义列表对象的列表。在我的实现中,我将具有 TimeStamp 属性的 Workout 对象分组。在此方法中,为您想要的每种类型的组键名称创建组对象,例如“过去 7 天”或“过去 6 个月”。然后通过循环遍历传入的 IEnumerable 组并评估每个组以确定它们应该分组的位置来填充每个组。最后将每个分组列表添加到主组列表并返回。这是我的方法:

public static List<TimeKeyGroup<Workout>> CreateGroups(IEnumerable<Workout> workouts)
{
// Create List to hold each item
List<TimeKeyGroup<Workout>> groupedWorkouts = new List<TimeKeyGroup<Workout>>();

// Create a TimeKeyGroup for each group I want
TimeKeyGroup<Workout> LastSeven = new TimeKeyGroup<Workout>("Last Seven Days");
TimeKeyGroup<Workout> LastTwoWeeks = new TimeKeyGroup<Workout>("Last Two Weeks");
TimeKeyGroup<Workout> LastMonth = new TimeKeyGroup<Workout>("Last Month");
TimeKeyGroup<Workout> LastSixMonths = new TimeKeyGroup<Workout>("Last Six Months");
TimeKeyGroup<Workout> LastYear = new TimeKeyGroup<Workout>("Last Year");
TimeKeyGroup<Workout> AllTime = new TimeKeyGroup<Workout>("All Time");

// Fill each list with the appropriate workouts
foreach (Workout w in workouts)
{
if (w.TimeStamp > DateTime.Now.AddDays(-7))
{
LastSeven.Add(w);
continue;
}
else if (w.TimeStamp > DateTime.Now.AddDays(-14))
{
LastTwoWeeks.Add(w);
continue;
}
else if (w.TimeStamp > DateTime.Now.AddMonths(-1))
{
LastMonth.Add(w);
continue;
}
else if (w.TimeStamp > DateTime.Now.AddMonths(-6))
{
LastSixMonths.Add(w);
continue;
}
else if (w.TimeStamp > DateTime.Now.AddMonths(-12))
{
LastYear.Add(w);
continue;
}
else
{
AllTime.Add(w);
}
}

// Add each TimeKeyGroup to the overall list
groupedWorkouts.Add(LastSeven);
groupedWorkouts.Add(LastTwoWeeks);
groupedWorkouts.Add(LastMonth);
groupedWorkouts.Add(LastSixMonths);
groupedWorkouts.Add(LastYear);
groupedWorkouts.Add(AllTime);

return groupedWorkouts;
}

现在你有一个很好的分组列表列表。惊人的!剩下的只是将 LongListSelector 的 itemssource 属性连接到这个新列表并定义 JumpListStyle 和 GroupedHeaderTemplate。您引用的原始文章包含所有这些信息。

祝你好运,祝 Windows Phone 开发愉快!

关于xaml - LongListSelector 日期分组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13896020/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com