1

我有两个带有数据的堆叠列表框(第一个列表框包含 <10 个元素,第二个可能有多达 5000 个元素),第一个列表框的元素必须在顶部:

 <ScrollViewer >
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
 <RowDefinition Height="Auto"/>
 </Grid.RowDefinitions>
<Listbox IsScrollable="False"/>
<Listbox Grid.Row="1" IsScrollable="False"/>
 </ScrollViewer >

如何提高滚动性能?

我知道当我调用“ScrollViewer.SetVerticalScrollBarVisibility(sender as ListBox, ScrollBarVisibility.Disabled);”时我失去了 virtualizingPanel

但是当我需要两个 ListBox 时,有什么方法可以启用它吗?

4

1 回答 1

2

为什么你不想只使用一个 ListBox 并为不同的数据类型设置不同的模板?您不需要做任何额外的工作来提高滚动性能。查看这篇 MSDN 文章Data Templating Overview,你会发现一个最新的示例使用 DataTemplateSelector 并且 SL 没有这个类,但是你可以在 SL/WP 中找到很多试图解决这个问题的博客文章:Implementing Windows Phone 7 数据模板选择器和自定义数据模板选择器。因此,如果您将使用这种方法 - 您只需要确保您将绑定到您的集合,并且您的集合将具有正确的元素顺序:来自第一个 ListBox 的 10 个元素,来自第二个 ListBox 的其他元素。

于 2012-08-12T18:41:43.117 回答