我已将一个月的日历日期缩短到选定日期。
string dMC = dateMonthCalender.SelectionRange.Start.ToShortDateString();
string takeDMCDay = dMC.Substring(0, 2);
monthCalender = Convert.ToInt32(takeDMCDay)
我有一个List,用于存储从类communityevents对象列表中的文本文件中读取的字段(日期,时间,名称,描述等...)
其中一个字段称为e.Day(这是该月的某一天)
当用户在月份日历上选择一天时,它会使用当天发生的事件名称填充组合框。
我遇到的问题是在CreateEventList方法中。 如果值为true,它就能满足我的需求。 但如果我取消注释不等于方法,它会覆盖第一个
我如何解决这个问题,我可以猜测问题是foreach社区事件是问题,但我迷失了如何得到一个或另一个不是两个运行,我已经尝试过,如果,如果否则,尝试while循环等等但是我在这里。?
private void CreateEventList()
{
events = ExtractData();
eventComboBox.Items.Clear();
string eventTrue = ("-Events-");
string descriptTrue = ("Pick an event");
string eventFalse = ("-No Event-");
string descriptFalse = ("-No events today-");
foreach (communityEvent e in events)
{
if (monthCalender == e.Day)
{
eventComboBox.Items.Insert(0, eventTrue);
eventComboBox.Items.Add(e.GetName());
}
//else if (monthCalender != e.Day)
//{
// eventComboBox.Items.RemoveAt(0);
// eventComboBox.Items.Insert(0, eventFalse);
//}
}
}
答案 0 :(得分:0)
如果我理解正确,如果所选月份没有事件,您需要列表中的-No Event-
。否则你需要一个匹配列表。
这将接近
private void CreateEventList()
{
events = ExtractData();
eventComboBox.Items.Clear();
string eventTrue = ("-Events-");
string descriptTrue = ("Pick an event");
string eventFalse = ("-No Event-");
string descriptFalse = ("-No events today-");
if ( !events.Any( e => e.Day == monthCalender ) )
{
// no occurrences
eventComboBox.Items.Insert(0, eventFalse);
}
else
{
// there are some occurrences
eventComboBox.Items.Add(eventTrue);
foreach (communityEvent e in events)
{
if (monthCalender == e.Day)
{
eventComboBox.Items.Add(e.GetName());
}
}
}