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 ListViewItem样式问题

WPF:改变ListBoxItem和ListViewItem的颜色

WPF ListViewItem IsSelected 仅在视图中滚动后影响

C# Wpf 如何使用其中的按钮更改 Listviewitem 的高度?

wpf 将Style应用到 ListView 中的 ListViewItem 元素

WPF ListViewItem 项目复选框。如何获取所有选定的项目?