【发布时间】:2015-12-31 02:36:14
【问题描述】:
我已经构建了一个自定义日历控件(如 google 日历和 Outlook 日历)
我想添加处理事件的功能(添加、删除等)。我已经有了它,但我希望它尽可能通用。
我的代码目前的样子:
myCalendar.Events.Add(myEvent);
myCalendar.Draw //this adds all the events to the calendar
我认为看起来更通用的示例:
myCalendar.Events.Add(myEvent);
myCalendar.Events.Remove(unwantedEvent);
myCalendar.Events.Draw
我的问题。 是第二个 code-sn-p 最佳实践还是我应该使用一个单独的类来处理绘图等。 (我目前有)
如果第二个 sn-p 更好,我该怎么做?
我尝试过的一种方法的粗略示例(让您了解我想要完成的工作)
public _Events Events = new _Events();
public class _Events
{
public List<Event> Events = new List<Event>();
void Add(...)
{
//Add event to Events
}
void Clear()
{
...
}
}
public class Event
{
public String Title { get; set; }
}
上面代码的问题是我希望能够像这样返回一个默认值......
listOfEvents = myCalendar.Events
免责声明:我已经尝试找到解决方案,但找不到合适的关键字来找到它
【问题讨论】:
-
在语义上,您是在绘制事件,还是在绘制日历?对我来说,
Calendar和Event将是没有“绘图”概念的域对象,而另一个类,例如 UI 层中的CalendarRenderer,将接受Calendar并具有手段,这对我来说是有意义的画出来。 -
myCalendar 是 Windows 窗体的用户控件吗?
-
@David 我正在将事件绘制到日历上
-
我还建议
Event应该是一个抽象类,这样您就可以创建MeeingEvent或BirthdayEvent等,允许渲染器根据类型进行不同的渲染。 -
我无法想象“绘图事件”是什么意思......我希望日历在添加/删除一个事件时简单地更新新事件而无需任何额外操作。