0

MVVM Light WP7 プロジェクトで、リストボックスの背景色を交互に変えたいです。

WP7 は、ListBox 項目の背景の背景色を交互にすることをサポートしていません。

itemsource が CollectionViewSource に設定されているリストボックスがあります。CollectionViewSource は、ViewModel の ObservableCollection にバインドされます。CollectionViewSource は、カスタム オブジェクトの datetime プロパティでリストを並べ替えるように構成されています。

リストを一番下までスクロールすると、コレクションにデータを追加するコマンドがビューモデルに送信されます。CollectionViewSource は datetime でソートされるため、アイテムは最後だけでなく、リストのどこにでも表示できます。

これにより、http://chillijam.co.uk/2012/01/11/alternating-listbox-item-background-colours-in-wp7/Windows Phone 7 のリストボックスに代替行スタイルを適用する方法のようなアプローチが機能しなくなります。以前に追加されたアイテムのみをチェックするためです。

私は ListView UpdateLayout イベントも購読しており、ListBox の各要素を調べて背景を交互に表示していますが、これが何度もトリガーされ、アプリが本当に応答しなくなりました。

誰にもアイデアはありますか?

4

1 に答える 1

1

番号で行にアクセスして、色を追加することができます。

if( row.id % 2 ==0)
//first color
else 
//second color

編集:これを使用して、選択されたときにリストボックスの行の背景を変更しました

     ListBoxItem lbiSelected = (ListBoxItem)(CalcultionList.ItemContainerGenerator.ContainerFromIndex(selectedItemIndex));
     //CalculationList is the name of my listbox
     lbiSelected.Background = new SolidColorBrush(Colors.Red);
于 2012-07-18T11:22:59.053 に答える