Xamarin.forms Xamarin表单:如何在XamForms.Controls.Calendar specialdate上添加点击事件?
我正在使用XamForms.Controls.Calendar包在项目中显示日历。我用下面的代码在日历上标记事件Xamarin.forms Xamarin表单:如何在XamForms.Controls.Calendar specialdate上添加点击事件?,xamarin.forms,Xamarin.forms,我正在使用XamForms.Controls.Calendar包在项目中显示日历。我用下面的代码在日历上标记事件 private void AddSpecialDateWithList(List<events> list) { List<SpecialDate> newList = new List<SpecialDate>(); foreach (events model in list) { string start
private void AddSpecialDateWithList(List<events> list)
{
List<SpecialDate> newList = new List<SpecialDate>();
foreach (events model in list)
{
string startDate = model.start;
int startIndex = startDate.IndexOf('T');
if (startIndex > 0)
{
startDate = startDate.Substring(0, startIndex);
}
string endDate = model.end;
int endIndex = endDate.IndexOf('T');
if (endIndex > 0)
{
endDate = endDate.Substring(0, endIndex);
}
List<DateTime> dates = GetDatesBetween(DateTime.Parse(startDate), DateTime.Parse(endDate));
for(int i=0;i< dates.Count; i++)
{
var newDate = AddDate(dates[i], model);
newList.Add(newDate);
}
}
calendar.SpecialDates = newList;
}
private SpecialDate AddDate(DateTime dateTime, events model)
{
SpecialDate newDate = new SpecialDate(dateTime)
{
Selectable = true,
BackgroundPattern = new BackgroundPattern(1)
{
Pattern = new List<Pattern>
{
new Pattern { WidthPercent = 1f, HightPercent = 0.7f, Color = Color.White },
new Pattern{ WidthPercent = 1f, HightPercent = 0.3f, Color = Color.Yellow, Text = model.title, TextColor=Color.Black, TextSize=10, TextAlign=TextAlign.LeftCenter},
}
}
};
return newDate;
}
截图:
当我点击“有活动的一天”或“有数学作业的一天”时,我需要获取事件id以及与该事件相关的所有其他详细信息。我怎样做这个功能?还可以在XamForms.Controls.Calendar中显示月、周和日视图吗?您可以在单击的事件日期列表中获得SpecialDate的索引
这里的列表[num]是什么?项目中的列表可以在XamForms.Controls.Calendar中显示月、周和日视图吗?找到一个名为EnableTitleMonthYearView的属性,这有什么用?我不熟悉该插件,您可以试试。
private void calendar_DateClicked(object sender, DateTimeEventArgs e)
{
int num = 0;
var specialList = calendar.SpecialDates;
var date = e.DateTime;
foreach(SpecialDate specialDate in specialList)
{
if(specialDate.Date.Year==date.Year&& specialDate.Date.Month == date.Month&&specialDate.Date.Day == date.Day)
{
events model = list[num];
// do something you want
}
else
{
num++;
}
}
}