WPF how to make a listbox/listview unfocusable

Antoine Jeanrichard picture Antoine Jeanrichard · Mar 21, 2011 · Viewed 7.5k times · Source

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 :)

Answer

Dan Puzey picture Dan Puzey · Mar 21, 2011

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.