2012-04-13 19 views
0

我有一個StackPanel,我動態地隱藏/顯示項目,並且我想讓它使每個項目的背景屬性交替出現(白色和灰色)。我嘗試以編程方式執行此操作,但由於設置每個項目的背景的代碼在每次隱藏/顯示項目時都運行,所以效率很低。我知道,也許使用樣式/模板可以解決這個問題,但由於某種原因,WPF的這個特殊功能讓我每次嘗試學習時都困惑。有人可以告訴我如何做到這一點?自定義StackPanel使用子控件替換顏色

另外,我想過使用ListBox/ListViews而不是StackPanel,但相信我,由於我的特殊實現他們不工作。

回答

1

你可以使用附加屬性ItemsControl.AlternationIndex(sample-http://dotnetbutchering.blogspot.com/2009/08/how-to-set-wpf-listview-alternate-row.html)上的任何ItemsControl來做到這一點,但我不認爲它只能在StackPanel的xaml中使用。你確定這個程序很慢嗎?我很確定它的速度足夠快,所以你不需要打擾。

+0

我打算推薦同樣的東西,但尼古拉打敗了我。 – Rhyous 2012-04-13 21:20:42

+0

這很慢,因爲行動經常發生在可能有數千個項目的列表上。感謝你的回答。 – Abion47 2012-04-13 21:39:46