Windows phone 7 如何更新Windows Phone上ScheduledActionService中的现有报警?
在我的应用程序中,我有一个Windows phone 7 如何更新Windows Phone上ScheduledActionService中的现有报警?,windows-phone-7,windows-phone-7.1,alarm,scheduledactionservice,Windows Phone 7,Windows Phone 7.1,Alarm,Scheduledactionservice,在我的应用程序中,我有一个警报,计划在上午8:00开始(BeginTime)。我面临的问题是,我不确定更新其BeginTime的最合适方法是什么 我试图在ScheduledActionService中找到报警,然后从那里进行更新。不幸的是,它似乎不起作用,报警从未被触发 var schedule = ScheduledActionService.Find(alarmModel.Name); if (schedule != null) {
警报
,计划在上午8:00开始(BeginTime
)。我面临的问题是,我不确定更新其BeginTime
的最合适方法是什么
我试图在ScheduledActionService
中找到报警
,然后从那里进行更新。不幸的是,它似乎不起作用,报警
从未被触发
var schedule = ScheduledActionService.Find(alarmModel.Name);
if (schedule != null)
{
var alarm = (Alarm)schedule;
if (alarm.BeginTime != alarmModel.BeginTime)
{
alarm.BeginTime = alarmModel.BeginTime;
}
}
如果我从ScheduledActionService中删除它,然后添加一个新的,那么它就工作了
但这看起来很难看。。。这是我“更新”报警的唯一方法吗
谢谢
Xin不。正确的方法必须是调用()。
添加一个名为Update的扩展方法来查找和删除?不久前,当我使用ScheduledActionService时,我只是让我的代码查找并删除。@willmel是的,这就是我正在做的atm,它会工作,但我不喜欢你必须删除它并添加一个新的想法…是的,这有点不理想-但是嘿,这就是扩展方法和抽象的好处!编写一次代码,以后再也不处理它了。实际上,我以前试过
Replace
功能,但它不起作用。我认为这是一个错误。看这篇文章,对我来说,用另一个对象替换整个对象似乎不是一个优雅的解决方案。这篇文章的作者想说的是,函数并不依赖于MSDN声明的名称。相反,该方法基于一个名为“muid”的Guid。不过,你可以用它来更新你的开始时间。好了,现在我明白了。谢谢你。
var schedule = ScheduledActionService.Find(alarmModel.Name);
if (schedule != null)
{
var alarm = (Alarm)schedule;
if (alarm.BeginTime != alarmModel.BeginTime)
{
alarm.BeginTime = alarmModel.BeginTime;
ScheduledActionService.Replace(alarm);
}
}