我一直在尝试在列表框/列表视图中显示一些无法聚焦的数据(我的意思不仅是列表,还包括其中的项目)。
我尝试了两种类型的列表(列表框和列表视图),并使用了它们的 ItemTemplate 和 ItemContainerStyle。我尽可能将 Focusable 属性设置为 false。
除了禁用列表之外,我没有看到任何其他方法,但是我必须更改其所有样式,以使其显示为未禁用。
我错过了什么吗?是否有我不知道的只读类型的列表?
谢谢你的想法:)
您可能看到的问题是列表中的每个单独项目都是可聚焦的。但是,您可以覆盖它...尝试将其添加到您的列表框中:
<ListBox.ItemContainerStyle>
<Style TargetType="Control">
<Setter Property="Focusable" Value="False" />
</Style>
</ListBox.ItemContainerStyle>
但是请注意,这会使项目无法选择(通过键盘或鼠标)。您可以以编程方式设置所选项目,但它似乎不再自动突出显示 - 所以实际上,它的行为几乎与ItemsControl
.
使用带有 TextBlocks 的 ItemsControl 而不是 ListBox
<ItemsControl ItemsSource="{Binding MyListBoxItemsSource}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding MyDisplayName}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>