【问题标题】:add multiple appointmentsTask in windows phone 8在 windows phone 8 中添加多个约会任务
【发布时间】:2013-09-13 06:05:49
【问题描述】:

我已经使用此代码成功添加了单个约会现在我想在单个循环中以编程方式添加多个约会。例如,我想使用循环一次添加 5 个约会,其中每个约会的日期都在列表中可用。 在此先感谢:)

SaveAppointmentTask saveAppointmentTask = new SaveAppointmentTask();          
saveAppointmentTask.StartTime = nearestDate;

saveAppointmentTask.EndTime = nearestDate.AddMinutes(3) ;

saveAppointmentTask.Subject = "Meet Ali"; // appointment subject

saveAppointmentTask.Location = "In Office"; // appointment location

saveAppointmentTask.Details = "Meet Ali to discuss product launch";//appointment details
saveAppointmentTask.IsAllDayEvent = false;
saveAppointmentTask.Reminder = Microsoft.Phone.Tasks.Reminder.FifteenMinutes;
saveAppointmentTask.AppointmentStatus = Microsoft.Phone.UserData.AppointmentStatus.OutOfOffice;
saveAppointmentTask.Show();

【问题讨论】:

标签: c# asp.net windows-phone-7 windows-phone-8 appointment


【解决方案1】:

使用此代码作为导航到事件在您登陆页面时始终调用

private SaveAppointmentTask saveAppointmentTask;
    private List<int> listMinutes = new List<int>();
    // Constructor
    public MainPage()
    {
        InitializeComponent();

        for (int i = 0; i < 10; i++) {
            listMinutes.Add(i);
        }

    }

    int countAdded = 0;
    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {

        if (countAdded < 10)
        {

            saveAppointmentTask = new SaveAppointmentTask();
            saveAppointmentTask.StartTime = DateTime.Now.AddMinutes(listMinutes[countAdded]);

            saveAppointmentTask.EndTime = saveAppointmentTask.StartTime.Value.AddMinutes(2);

            saveAppointmentTask.Subject = "Meet Ali"; // appointment subject

            saveAppointmentTask.Location = "In Office"; // appointment location

            saveAppointmentTask.Details = "Meet Ali to discuss product launch";//appointment details
            saveAppointmentTask.IsAllDayEvent = false;
            saveAppointmentTask.Reminder = Microsoft.Phone.Tasks.Reminder.FifteenMinutes;
            saveAppointmentTask.AppointmentStatus = Microsoft.Phone.UserData.AppointmentStatus.OutOfOffice;
            countAdded++;
            saveAppointmentTask.Show();
        }
        else { 
            // do not add anything
        }


    }

保存 i ,这是某些应用程序状态或令牌中的计数,以便您知道是否添加了事件 :) Appplication.Current.Resources.Add("token", "number added")

谢谢

【讨论】:

  • No No 看到这里的事情是当你调用 saveAppointmentTask.Show() -----假设你有你的列表第一次约会----;然后它会显示另一个屏幕,您可以在其中保存约会。现在,当该保存屏幕存在时,您无法循环播放。但是,当您保存约会单击保存时,您将再次登陆 NavigatedTo() .. 在这里您再次添加列表的第二个元素并再次执行 saveAppointmentTask.Show();。然后再次保存它你会来到这里。添加列表第三次约会并执行 saveAppointmentTask.Show();.
  • windows phoen 的问题是,一旦您转到另一个页面,您就会丢失应用程序页面。但是当你回来保存时,这个事件就会被触发。到底有人投了反对票??请说明原因。
  • 如果您无法实施,请告诉我。然后给出一个列表演示并更新答案:)
  • 我已经更新了代码。对于应用程序资源,稍后会进行演示。有一些工作。一小时后回来
  • 现在这超出了我的范围 :( 您可以对 Phonegap 开发人员提出一个单独的问题来链接这个或我的逻辑。但我实际上不知道 phonegap 如何处理这些,我不想要做我瞎猜或一些链接:)
【解决方案2】:

您无法自动保存所有约会。您必须在每次迭代中启动任务,并且每次迭代都需要用户交互。

一个可能的选择是使用Live Connect API。这将允许您以编程方式在用户的实时日历中创建一个点:

Interacting with calendars (Live Connect API)

这样你不会与手机日历交互,而是与用户的 Live 日历交互,它可以在手机中同步。当然,用户需要进行身份验证。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多