2012-05-24 3 views
0

Я пытаюсь получить элемент списка, под кодом ниже. В основном то, что я пытаюсь сделать, это создать tempdatelist, а затем установить источник items из списка в tempdatelist.Windows Phone 7 Listbox.ItemContainerGenerator.ContainerFromIndex (i) возвращает null?

if (App.Saveholidayplan[App.selectedlistindex].travel.Count > 0)  
    foreach (var dictobj in App.Saveholidayplan[App.selectedlistindex].travel[0].DummyRepository)     
     tempdatelist.Add(dictobj.Key); 


lst_mainlist.ItemsSource = tempdatelist; 

ListBoxItem item = this.lst_mainlist.ItemContainerGenerator.ContainerFromIndex(i) as ListBoxItem; 

//* item is alway null, that is the problem 
if(item != null) 

Но в приведенном выше элементе кода retuns null.

Когда я проверяю Интернет, некоторые предложили позвонить ItemContainerGenerator.StatusChanged событие.

Но я не могу найти это событие в WP7? Есть ли событие StatusChanged в WP7, а если нет, то что является альтернативой?

+0

Показать больше Youre кода таким образом мы можем увидеть контекст фрагментах вы включили –

+0

отредактированных мой вопрос с контекстом кода –

+1

что вы собираетесь делать с 'item', как только вы его получите? Я не совсем понимаю, почему вы здесь возились с ItemContainerGenerator. – Robaticus

ответ

1

У меня тоже была эта проблема. Решение состоит в том, чтобы ждать, пока интерфейс для визуализации с помощью диспетчера, например:

this.Dispatcher.BeginInvoke(() => 
{ 
    ListBoxItem item = this.lst_mainlist.ItemContainerGenerator.ContainerFromIndex(i); 
    //... 
});