【发布时间】:2021-02-21 22:27:01
【问题描述】:
我正在使用Xamarin.Forms,我正在使用Microcharts 创建条形图。
我正在尝试制作一个条形图来显示本周每天输入的书籍数量 - 从星期一到星期日。
但是,当用户在周日查看页面时,条形图仅显示周日的计数,因为它显示的是周一至周六的下一周。
相反,条形图应显示本周周一至周日的数据。
var days = Enum.GetValues(typeof(DayOfWeek)).OfType<DayOfWeek>().OrderBy(day => day < DayOfWeek.Monday);
var dailyBookCounts = new Dictionary<string, int>();
foreach (var day in days)
{
var specificDayAtMidnight = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + (int)day);
var bookCount = App.Database.GetDailyCount(specificDayAtMidnight);
dailyBookCounts.Add(day.ToString("G"), bookCount);
}
var entries = new List<ChartEntry>();
foreach (var (nameOfTheDay, bookCountOfTheDay) in dailyBookCounts)
{
entries.Add(new ChartEntry(bookCountOfTheDay)
{
Label = nameOfTheDay,
ValueLabel = bookCountOfTheDay.ToString(),
Color = SKColor.Parse("#004daa")
});
}
chartView.Chart = new BarChart
{
Entries = entries,
LabelTextSize = 32f,
LabelOrientation = Orientation.Horizontal,
ValueLabelOrientation = Orientation.Horizontal,
Margin = 20
};
数据库.cs:
public int GetDailyCount(DateTime day)
{
var dayAfterCurrentDay = day.AddDays(1);
return database.ExecuteScalar<int>("SELECT COUNT(*) FROM Book WHERE bookSaveTime> ? AND bookSaveTime< ?;", day, dayAfterCurrentDay);
}
如何更改此设置,以便条形图显示本周周一至周日的数据(而不是在周日查看页面时显示接下来几周的数据)?
【问题讨论】:
标签: c# xamarin xamarin.forms