WPF ListViewItem IsSelected 仅在视图中滚动后影响
Posted
技术标签:
【中文标题】WPF ListViewItem IsSelected 仅在视图中滚动后影响【英文标题】:WPF ListViewItem IsSelected only affect after scroll in view 【发布时间】:2011-07-19 07:59:28 【问题描述】:我有一个 ListViewItem 的绑定,它位于 gridview/listview/scrollviewer 下。
<Setter Property="IsSelected" Value="Binding IsSelected"/>
我遇到了一个问题:
在 ListView/GridView 中按“CTRL+A”后,当前在 ScrollViewer 区域中的所有项目都将“IsSelected”设置为 true。
对于列表中的所有其他项目,但不在滚动查看器的当前可视区域中,除非我手动将它们滚动到可视区域,否则“IsSelected”将不会设置为“true”。
我想问这是设计的吗?如果没有,我可能会出什么问题?
谢谢。
【问题讨论】:
【参考方案1】:您可能正在使用虚拟化。因此,只会创建填充视图所需的“容器”(即 ListViewItem)。您可以通过在 ListView 上将 VirtualizingStackPanel.IsVirtualizing 设置为 false 来禁用虚拟化。但是,如果您有大量数据,这确实会影响性能。
【讨论】:
以上是关于WPF ListViewItem IsSelected 仅在视图中滚动后影响的主要内容,如果未能解决你的问题,请参考以下文章
WPF:改变ListBoxItem和ListViewItem的颜色
WPF ListViewItem IsSelected 仅在视图中滚动后影响
C# Wpf 如何使用其中的按钮更改 Listviewitem 的高度?