2012-08-12 145 views
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(發件人爲ListBox,ScrollBarVisibility.Disabled)時丟失了virtualizingPanel;」

但是當我需要兩個ListBox時,有什麼辦法可以啓用它嗎?

回答

2

爲什麼你不想只使用一個ListBox併爲不同的數據類型設置不同的模板?您不需要做任何額外的工作來提高滾動的性能。 查看這篇MSDN文章Data Templating Overview,你會發現最新的一個示例使用了DataTemplateSelector,SL沒有這個類,但是你可以在SL/WP中找到很多博客帖子來解決這個問題:Implementing Windows Phone 7 DataTemplateSelector and CustomDataTemplateSelector。所以如果你會使用這種方法 - 你只需要確定你將綁定到你的集合,並且你的集合將具有正確的元素順序:來自第一個ListBox的10個元素,來自第二個ListBox的其他元素。

+1

對不起,但我需要從第一個列表框中的項目將在頂部。這個怎麼做? – SevenDays 2012-08-12 19:32:32

+2

你是什麼意思?他們不應該滾動?或者他們應該始終位列榜首?只需在你的收藏中以正確的方式排列它們。 – outcoldman 2012-08-13 02:14:32

+0

我有一個跳轉列表,但你是對的。我只是將firts litbox的項目設置爲非字符組並對它們進行排序。 – SevenDays 2012-08-13 08:56:23