【问题标题】:Setting a DateTime appointment schedule设置 DateTime 约会时间表
【发布时间】:2013-05-13 05:18:59
【问题描述】:

关于使用 DateTime 方法在 Telerik 日历中设置时间表的新手问题。我想使用 Telerik 控件日历来设置乐队巡演时间表。

我似乎无法得到想要的结果。下面是我的 SampleAppointmentSource CS 文件中的代码。我认为通过设置 DateTime.Parse("5/19/2013") 然后在我使用 AddDays(1) 或 AddDays(20) 的所有约会中,约会将遵循 DateTime.Parse("5/ 19/2013") 模式,但事实并非如此。约会始终使用当前日期和时间(现在)。当我添加日期时,约会不会添加到解析日期(“2013 年 5 月 19 日”),它们会添加到当前的 DateTime。就像约会总是参考当前系统日期一样。

我希望这不会让人感到困惑......

我需要使用什么来获得所需的结果?

是因为 DateTime.Now.AddDays(1) 行吗?不应该是 DateTime.Now 吗?

{
public class SampleAppointmentSource : AppointmentSource
{
    public SampleAppointmentSource()
    {
        DateTime date = new DateTime();
        date = DateTime.Parse("5/19/2013");
    }

    public override void FetchData(DateTime startDate, DateTime endDate)
    {
        this.AllAppointments.Clear();

        this.AllAppointments.Add(new SampleAppointment()
        {
            StartDate = DateTime.Now.AddDays(1),
            EndDate = DateTime.Now.AddDays(1),
            Subject = "Jackson W/Warren Hayes",
            AdditionalInfo = "Fain Feild",
            Location = "LoserVille,Kentucky",
        });

【问题讨论】:

  • 不会解决您遇到的问题,但更多的是语义问题:您有一个名为 FetchData 的方法,它不返回任何内容,而是用于设置数据。这对我来说没有意义。
  • 我认为,根据 Telerik Controls 文档,使用 FetchData 只是为了让日程表指向 FetchData(DateTime) 内容下方列出的约会。这可能是我的问题。也许我不太了解 DateTIme 。我希望约会代码起作用的方式是只显示旅行时间表。但无论我添加什么 AddDays() 数字,它总是将天数添加到当前时间。甚至在不同的日子启动应用程序。它总是添加到当前日期。因此,约会会移动,以反映在当天增加 (1) 天。
  • 啊,抱歉。如果 Telerik 需要它,那么它是他们奇怪的方法名称,而不是你的 :)
  • Windows Phone 是否会在我正在构建的应用程序中本地绘制日历?不使用手机的日历,只需在应用程序内绘制一个日历即可。我没有研究过这个,但我会的。我只是在使用 Telerik,因为我在演示中看到了它。
  • 您是否正在使用您传递的参数 startDateendDate ?我不确定这是你的全部方法吗?

标签: c# telerik windows-phone


【解决方案1】:

充实我对您的问题的评论。您创建了一个名为 dateDateTime 对象,但从不使用它。 DateTime.Now 将始终返回一个包含当前DateTime 的对象。您需要提供您的 date DateTime 对象模块级别范围,以便您可以在您的 FetchData 方法中访问它。看看这样的东西是否适合你。

public class SampleAppointmentSource : AppointmentSource
{
    DateTime date;
    public SampleAppointmentSource()
    {
        date = DateTime.Parse("5/19/2013");
     }

    public override void FetchData(DateTime startDate, DateTime endDate)
    {
        this.AllAppointments.Clear();

        this.AllAppointments.Add(new SampleAppointment()
        {
            StartDate = date.AddDays(1),
            EndDate = date.AddDays(1),
            Subject = "Jackson W/Warren Hayes",
            AdditionalInfo = "Fain Feild",
            Location = "LoserVille,Kentucky",
        });
    }
}

【讨论】:

  • 在尝试调整标记后,约会根本没有出现。在公共类下 - DateTime 日期; - 日期下方有一条绿线。当我将鼠标悬停在它上面时,我会收到一条来自 VS = SampleAppointmentSource.date 的消息,它从未分配给它,并且始终具有其默认值。它表示为警告而不是错误。几乎就像它只是被忽略了一样。将“现在”添加到 StartDate = DateTime.AddDays(1),也不会改变任何内容。我真的很感谢你的帮助。
  • 对不起,注释掉 DateTime date = new DateTime();警告消失了,但约会仍然被忽略。
猜你喜欢
  • 2017-12-03
  • 2014-10-09
  • 1970-01-01
  • 2018-01-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-01
  • 2020-02-03
相关资源
最近更新 更多