【发布时间】:2013-08-20 00:03:15
【问题描述】:
我用绑定到ObservableCollection 填充我的ListBox。这些项目添加到ListBox 就好了,但是当我想选择ListBox 的第一项时,我得到一个InvalidOperationException...
代码:
private void PopulateDateListbox()
{
// clear listbox
DateList.Clear();
// get days in month
int days = DateTime.DaysInMonth(currentyear, currentmonth);
// new datetime
DateTime dt = new DateTime(currentyear, currentmonth, currentday);
for (int i = 0; i < (days-currentday+1); i++)
{
// create new dataitem
DateItem di = new DateItem();
di.dayint = dt.AddDays(i).Day.ToString(); // day number
di.day = dt.AddDays(i).DayOfWeek.ToString().Substring(0, 3).ToUpper(); // day string
di.monthint = dt.AddDays(i).Month.ToString(); // month number
di.yearint = dt.AddDays(i).Year.ToString(); // year number
// add dateitem to view
Dispatcher.BeginInvoke(() => DateList.Add(di));
}
// select first item in Listbox
datelistbox.SelectedIndex = 0; // <= InvalidOperationException
}
我也试过了:
datelistbox.SelectedItem = datelistbox.Items.First();
都不行,我不知道为什么?
【问题讨论】:
-
你是否在工作线程(UI线程除外)中调用
PopulateDateListbox? -
PopulateDateListbox 在 page=loaded 事件处理程序中被调用。
-
发布您收到的错误消息
标签: c# xaml listbox windows-phone