Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 当我使用listview模板时,UI虚拟化停止_Wpf_Templates_Listview_Ui Virtualization - Fatal编程技术网

Wpf 当我使用listview模板时,UI虚拟化停止

Wpf 当我使用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

我在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>


任何帮助都将不胜感激。

因为您覆盖了ControlTemplate,同时也覆盖了支持虚拟化的底层元素。将虚拟化控件(如VirtualzingStackPanel)重新添加到您的ControlTemplate中应该可以让它重新工作

如上所述,在ScrollContentPresenter定义中添加以下内容:
CanContentScroll=“{TemplateBinding CanContentScroll}”。它现在正在工作。谢谢大家!

我应该在哪里添加虚拟化面板?。。我想添加“ListViewExtra”…但没有任何帮助。