2012-04-13 60 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