ListBox
Windows Phone アプリに があります。ListBoxItem
ボタン アクションでは、ListBox
呼び出された のすべてに変換と名前を設定する必要がありますlb
。
私のデータソースは
var items = new ObservableCollection<string>();
for (int i = 0; i < 10; ++i)
{
items.Add("Item " + i);
}
lb.ItemsSource = items;
リストボックスのRenderTransform
それぞれにa を追加するコードがありますListBoxItem
for (int i = 0; i < items.Count;++i )
{
var item = this.lb.ItemContainerGenerator.ContainerFromIndex(i) as ListBoxItem;
item.RenderTransform = new CompositeTransform();
item.Name = i.ToString() //needed for storybord
//another stuff
}
そしてそれは正常に動作します。問題は、最初にリストにアイテムを挿入する必要があることです。for ループの前に呼び出すitems.Insert(index,"test")
と、項目が null の場合に例外が発生しますi==index
。新しいアイテムをいつ挿入しても問題ありません。そのアイテムに対して常に null を取得します。
私は何を間違っていますか?ListBox
または、アクセスしようとする前に新しいアイテムを挿入するときに待機する必要があるイベントはありListBoxItem
ますか?
編集:コードを抽出してソリューションに入れました: https://dl.dropboxusercontent.com/u/73642/PhoneApp2.zip。最初に偽のアイテムを新しいソリューションに挿入し、それをフェードアウトして、アニメーションを使用して元のアイテムをその位置に移動します。