wpflistviewlistboxfocusable

WPF how to make a listbox/listview unfocusable


I've been trying for a while to display some data in a listbox/listview that would be unfocusable (I mean not only the list, but also the items in it).

I tried with both types of list (listbox and listview), and I used their ItemTemplate and ItemContainerStyle. Everywhere I could, I set the Focusable property to false.

I don't see any other way than disabling the list, but then I have to change all its style, to make it appear not disabled.

Have I missed something? Is there a read-only type of list that I don't know about?

Thank you for your ideas :)


Solution

  • The problem you're probably seeing is that each individual item in the list is focusable. However, you can override that... Try adding this to your listbox:

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

    Note however that this makes the items unselectable (by keyboard or by mouse). You can set the selected item programmatically, but it doesn't appear to be highlighted automatically any more - so really, this behaves almost the same as an ItemsControl.