0

我需要创建一个类似monthview-control 的前景来显示约会。(显示一个月中所有日子的网格,工作日垂直对齐。应显示每一天的天数和星期几,约会应显示在正确日期内的列表视图中)

我需要一些关于从哪里开始的意见。

假设 ViewModel 看起来像这样:

    public class MonthViewModel
{
    public List<DateTime> DaysInMonth { get; set; }
    public List<Appointment> Appointments { get; set; }
}
    public class Appointment
{
    public string Title { get; set; }
    public DateTime Start { get; set; }
    public string Description { get; set; }

}

我是否需要手动安排日期并安排约会,还是可以做得更优雅?

我已经尝试了几个带绑定的apporoches,但都没有成功。关于做什么的任何提示?

问候拉尔西

4

1 回答 1

0

几周前我做了这件事。我所做的是创建两个 Silverlight 用户控件,一个用于一天,一个用于一个月。

月份控件使用如下所示的日期控件填充名为 MonthRows 的堆栈面板:

        ViewStartDate = new DateTime(CurrentDate.Year, CurrentDate.Month, 1);
        ViewEndDate = ViewStartDate.AddMonths(1).AddDays(-1);

        while (ViewStartDate.DayOfWeek != System.DayOfWeek.Sunday)
        {
            ViewStartDate = ViewStartDate.AddDays(-1);
        }
        while (ViewEndDate.DayOfWeek != System.DayOfWeek.Saturday)
        {
            ViewEndDate = ViewEndDate.AddDays(1);
        }

        DateTime tmpDate = ViewStartDate;
        while (tmpDate <= ViewEndDate)
        {
            StackPanel stack = new StackPanel()
            {
                Orientation = Orientation.Horizontal
            };

            for (int i = 0; i < 7; i++)
            {
                stack.Children.Add(new ucDay(tmpDate.Year, tmpDate.Month, tmpDate.Day, EventFunc, CurrentDate));
                tmpDate = tmpDate.AddDays(1);
            }
            MonthRows.Children.Add(stack);
        }

ucDay 构造函数接受年、月、日、委托函数指针(用于处理点击事件)和当前选定的日期作为参数。

于 2009-12-08T21:57:11.577 回答