如何在 Windows 8 应用程序中安排特定日期和时间的 toast 通知?
Posted
技术标签:
【中文标题】如何在 Windows 8 应用程序中安排特定日期和时间的 toast 通知?【英文标题】:How to schedule a toast notification for a specific date and time in windows 8 app? 【发布时间】:2015-05-22 06:08:24 【问题描述】:我想为日历应用程序的 c# 中的 windows 应用程序安排特定日期和时间的 toast 通知,例如 2015 年 3 月 18 日下午 4:00。我制作了 3 个组合框(NewEventYear)等等。我正在尝试的是..
int x = int.Parse(NewEventYear.SelectedItem.ToString());
/* y & z for month and date respectively */
DateTime EventDate = new DateTime(x,y,z);
ScheduledToastNotification scheduledToast = new ScheduledToastNotification(toastXml, EventDate);
我遇到了一个错误
"FormatException 未被用户代码处理:输入字符串不在 格式正确”
指向
int x = int.Parse(NewEventYear.SelectedItem.ToString());
【问题讨论】:
NewEventYear.SelectedItem.ToString()
的确切值是多少,您的CurrentCulture
是什么?调试您的代码并告诉我们。
如果是 18/3/2015 4:00 PM
之类的,显然不是一个有效的整数。
您正在尝试将SelectedItem
转换为整数,这将返回完整的日期字符串,而不是年份。您需要先将 SelectedItem 转换为 DateTime
(假设您的 ComboBox 列表中充满了 DateTime 对象),然后引用 Year
属性。
使用此代码获取文化 varculture = System.Globalization.CultureInfo.CurrentCulture;它从 Visual Studio 的设计视图返回“en-US”添加的组合框项目为“2015”。
如何将 SelecteItem 转换为 DateTime ?
【参考方案1】:
感谢您的帮助。通过编写此代码解决了我的问题。
int x = int.Parse(NewEventYear.SelectedItem.ToString());
int y = int.Parse(NewEventMonth.SelectedItem.ToString());
int z = int.Parse(NewEventDate.SelectedItem.ToString());
int a = int.Parse(NewEventHour.SelectedItem.ToString());
int b = int.Parse(NewEventMinutes.SelectedItem.ToString());
DateTime EventDate = new DateTime(x,y,z,a,b,0)
TimeSpan NotTime = EventDate.Subtract(DateTime.Now);
DateTime dueTime = DateTime.Now.Add(NotTime);
ScheduledToastNotification scheduledToast = new ScheduledToastNotification(toastXml, dueTime);
ToastNotificationManager.CreateToastNotifier().AddToSchedule(scheduledToast);
【讨论】:
【参考方案2】:你可以使用的是
ObservableCollection<DateTime> myDateTimeCollection = new ObservableCollection<DateTime>();
myDateTimeCollection.Add(DateTime.Now); // add more members
myComboBox.ItemsSource = myDateTimeCollection;
DateTime selectedDateTime = (DateTime)myComboBox.SelectedItem; //add this in myComboBox_SelectionChanged event
【讨论】:
以上是关于如何在 Windows 8 应用程序中安排特定日期和时间的 toast 通知?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 PowerShell 在系统重新启动后延迟 10 分钟在 Windows 任务计划程序中安排任务?