我有一个从 WPF 中的 listview 扩展的控件。如果我使用自定义模板覆盖“模板”,则 UI 虚拟化将不再存在。
有人可以帮助我进行 UI 虚拟化和自定义模板。
我的 ListView 控件 XAML
<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>
任何帮助,将不胜感激。