WPF ListView的虚拟化。如何禁用的ListView虚拟化? [英] WPF ListView virtualization. How to disable ListView virtualization?
问题描述
我有一些麻烦与自定义的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 theListView
or set a normalStackPanel
as theListView.ItemsPanel
.
<ListView VirtualizingStackPanel.IsVirtualizing="False"/>
or
<ListView>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel></StackPanel>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
这篇关于WPF ListView的虚拟化。如何禁用的ListView虚拟化?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!