我需要做一些事情,在 WPF 中列出一些东西,但我不希望用户单击列表,列表框没有禁用选择的属性。您可以禁用该控件,但这不是我需要的,因为它会扰乱样式并使文本难以阅读。我的意思是有这样的东西:
<ListBox IsEnabled="{Binding IsValid}" ...> ... </ListBox>
我想知道是否有类似的东西:
<ListBox Selection="Disabled" ...> ... </ListBox>
或者如果存在不同于列表框的列出项目的替代方法
问题是,有没有办法在 WPF 中列出内容并且用户不能选择这些项目?
最佳答案
使用ItemsControl代替 ListBox
。 ItemsControl 是一个 lookless control .
但是ItemsControl 不支持(默认情况下)虚拟化,您必须进行一些更改以支持虚拟化(以防万一)。
如果你想在这里支持虚拟化,请引用这个 - Virtualizing an ItemsControl.
您可以设置IsHitTestVisible ListBoxItem 上的 false
不允许任何鼠标输入。您可以使用 ItemContainerStyle 设置它。
<ListBox>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="IsHitTestVisible" Value="False"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
关于c# - 如何阻止用户在不禁用列表框中选择项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20957029/