2
我在这里遇到问题,我想在TreeView中显示一些项目,大约100.000个元素。 如果我使用默认的WPF TreeView似乎一切正常,但如果我使用自定义TreeView(这是目前只有一个ItemsControl),虚拟化似乎不再工作。 虽然研究在网上,我已经尝试了一些解决方案,但没有人似乎工作... 这里是我的XAML:Treeview上的VirtualizingStackPanel不是虚拟化的
<Style TargetType="{x:Type my:MultiSelectionTreeView}">
<Setter Property="TreeView.Background" Value="Transparent"/>
<Setter Property="VirtualizingStackPanel.IsVirtualizing" Value="True"/>
<Setter Property="VirtualizingStackPanel.VirtualizationMode" Value="Recycling"/>
<Setter Property="TreeView.OverridesDefaultStyle" Value="True" />
<Setter Property="ItemsControl.ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<VirtualizingStackPanel IsItemsHost="True"/>
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
<Setter Property="TreeView.Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type my:MultiSelectionTreeView}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<ScrollViewer Focusable="True" CanContentScroll="true"
Padding="4"
VerticalScrollBarVisibility="Auto">
<ItemsPresenter HorizontalAlignment="Stretch"/>
</ScrollViewer>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
的项目是在数据绑定一个ObservableCollection,所以应该不会问题......但它是什么?
映入眼帘,
于尔根
grmph,一切都是可能的,但如果你看起来够深,那么就会有如此多的不便和限制......哦,那就这样吧。谢谢! – opiswahn 2011-05-06 08:15:41