Wpf 当我使用listview模板时,UI虚拟化停止
我在WPF中有一个从listview扩展的控件。如果使用自定义模板覆盖“模板”,则UI虚拟化将不再存在 有人能帮我把UI虚拟化和自定义模板结合起来吗 我的ListView控件XAMLWpf 当我使用listview模板时,UI虚拟化停止,wpf,templates,listview,ui-virtualization,Wpf,Templates,Listview,Ui Virtualization,我在WPF中有一个从listview扩展的控件。如果使用自定义模板覆盖“模板”,则UI虚拟化将不再存在 有人能帮我把UI虚拟化和自定义模板结合起来吗 我的ListView控件XAML <controls:ListViewExtra ItemsSource="{Binding Path=POView}" ItemContainerStyleSelector="{StaticResource listViewItemStyleSelector}" VirtualizingStackPan
<controls:ListViewExtra ItemsSource="{Binding Path=POView}" ItemContainerStyleSelector="{StaticResource listViewItemStyleSelector}"
VirtualizingStackPanel.IsVirtualizing="true"
ScrollViewer.IsDeferredScrollingEnabled="True" VirtualizingStackPanel.VirtualizationMode="Recycling"
IsSynchronizedWithCurrentItem="True" Template="{StaticResource CustomListView2}"
>
<controls:ListViewEx.View>
<GridView ScrollViewer.VerticalScrollBarVisibility="Visible" ColumnHeaderContainerStyle="{StaticResource listViewHeaderStyle}">
<GridViewColumn Width="110" Header="" CellTemplate="{StaticResource cellTemplateButtons}" />
<GridViewColumn Header="Name" controls:GridViewHeaderRowPresenterEx.MinimumWidth="150" CellTemplate="{StaticResource cellTemplateName}" controls:ListViewEx.SortPropertyPath="Drug.Name" />
<GridViewColumn Header="Id" CellTemplate="{StaticResource cellTemplateDose}" Width="100"/>
</GridView>
</controls:ListViewExtra.View>
</controls:ListViewExtra>
模板“CustomListView2”如下所示
<ControlTemplate x:Key="CustomListView2" TargetType="{x:Type ListView}">
<Border Name="Border">
<Grid>
<ScrollViewer Style="{StaticResource ListViewScrollViewer2}">
<ItemsPresenter/>
</ScrollViewer>
</Grid>
</Border>
</ControlTemplate>
任何帮助都将不胜感激。因为您覆盖了ControlTemplate,同时也覆盖了支持虚拟化的底层元素。将虚拟化控件(如VirtualzingStackPanel)重新添加到您的ControlTemplate中应该可以让它重新工作 如上所述,在ScrollContentPresenter定义中添加以下内容:
CanContentScroll=“{TemplateBinding CanContentScroll}”。它现在正在工作。谢谢大家! 我应该在哪里添加虚拟化面板?。。我想添加“ListViewExtra”…但没有任何帮助。