WPF ListView的虚拟化。如何禁用的ListView虚拟化? [英] WPF ListView virtualization. How to disable ListView virtualization?

查看:189
本文介绍了WPF ListView的虚拟化。如何禁用的ListView虚拟化?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一些麻烦与自定义的ListView(复选框滚动的ListView里面的时候失去了他们的状态)。我可以禁用虚拟化的ListView没有视觉树枚举?

 < ListView控件>
    < ListView.Resources>
        <风格的TargetType =GridViewColumnHeader>
            < setter属性=能见度VALUE =折叠/>
        < /样式和GT;
    < /ListView.Resources>
    < ListView.View>
        < GridView控件>
            < GridViewColumn标题=地址>
                < GridViewColumn.CellTemplate>
                    <的DataTemplate>
                        <复选框CONTENT ={绑定地址}/>
                    < / DataTemplate中>
                < /GridViewColumn.CellTemplate>
            < / GridViewColumn>
            < GridViewColumn标题=名称>
                < GridViewColumn.CellTemplate>
                    <的DataTemplate>
                        < TextBlock的文本={结合名}/>
                    < / DataTemplate中>
                < /GridViewColumn.CellTemplate>
            < / GridViewColumn>
        < / GridView的>
    < /ListView.View>
< / ListView控件>
 

解决方案

正如由HB在<一个href="http://stackoverflow.com/questions/13326506/listbox-is-virtual-by-default/13330630#13330630">their回答这里:

  

套装   <一href="http://msdn.microsoft.com/en-us/library/system.windows.controls.virtualizingstackpanel.isvirtualizing.aspx"相对=nofollow> VirtualizingStackPanel.IsVirtualizing   假的的ListView 或设置正常    的StackPanel   作为    ListView.ItemsPanel

 &LT; ListView控件VirtualizingStackPanel.IsVirtualizing =FALSE/&GT;
 

 &LT; ListView控件&GT;
 &LT; ListView.ItemsPanel&GT;
     &LT; ItemsPanelTemplate&GT;
       &LT; StackPanel的&GT;&LT; / StackPanel的&GT;
      &LT; / ItemsPanelTemplate&GT;
  &LT; /ListView.ItemsPanel>
 &LT; / ListView控件&GT;
 

I have some troubles with custom ListView (CheckBoxes inside lost their states when scrolling ListView). Can I disable ListView virtualization without visual tree enumerating?

<ListView>
    <ListView.Resources>
        <Style TargetType="GridViewColumnHeader">
            <Setter Property="Visibility" Value="Collapsed" />
        </Style>
    </ListView.Resources>
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Address">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <CheckBox Content="{Binding Address}"/>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
            <GridViewColumn Header="Name">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Name}"/>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>
</ListView>

解决方案

As stated by H.B. in their answer here:

Set VirtualizingStackPanel.IsVirtualizing to false on the ListView or set a normal StackPanel as the ListView.ItemsPanel.

<ListView VirtualizingStackPanel.IsVirtualizing="False"/>

or

<ListView>
 <ListView.ItemsPanel>
     <ItemsPanelTemplate>
       <StackPanel></StackPanel>
      </ItemsPanelTemplate>
  </ListView.ItemsPanel>
 </ListView>

这篇关于WPF ListView的虚拟化。如何禁用的ListView虚拟化?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆