0

以下のコードでリストボックス項目を取得しようとしています。基本的に私がしようとしているのは、tempdatelist を作成し、Listbox の itemsource を tempdatelist に設定することです。

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)

しかし、上記のコード item では null が返されます。

オンラインをチェックすると、ItemContainerGenerator.StatusChangedイベントを呼び出すよう提案されたものがあります。

しかし、WP7 でこのイベントを見つけることができませんか? WP7 に StatusChanged イベントはありますか? そうでない場合、代替手段は何ですか?

4

1 に答える 1

1

私もこの問題を抱えていました。解決策は、次のように、ディスパッチャーを使用して UI がレンダリングされるのを待つことです。

this.Dispatcher.BeginInvoke(() =>
{
   ListBoxItem item = this.lst_mainlist.ItemContainerGenerator.ContainerFromIndex(i);
   //...
});
于 2013-12-20T00:00:44.917 に答える