6

我一直在尝试在列表框/列表视图中显示一些无法聚焦的数据(我的意思不仅是列表,还包括其中的项目)。

我尝试了两种类型的列表(列表框和列表视图),并使用了它们的 ItemTemplate 和 ItemContainerStyle。我尽可能将 Focusable 属性设置为 false。

除了禁用列表之外,我没有看到任何其他方法,但是我必须更改其所有样式,以使其显示为未禁用。

我错过了什么吗?是否有我不知道的只读类型的列表?

谢谢你的想法:)

4

2 回答 2

15

您可能看到的问题是列表中的每个单独项目都是可聚焦的。但是,您可以覆盖它...尝试将其添加到您的列表框中:

  <ListBox.ItemContainerStyle>
    <Style TargetType="Control">
      <Setter Property="Focusable" Value="False" />
    </Style>
  </ListBox.ItemContainerStyle>

但是请注意,这会使项目无法选择(通过键盘或鼠标)。您可以以编程方式设置所选项目,但它似乎不再自动突出显示 - 所以实际上,它的行为几乎与ItemsControl.

于 2011-03-21T13:06:25.930 回答
4

使用带有 TextBlocks 的 ItemsControl 而不是 ListBox

<ItemsControl ItemsSource="{Binding MyListBoxItemsSource}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding MyDisplayName}" />
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>
于 2011-03-21T13:57:47.673 回答