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