Pregunta

He estado intentando durante un tiempo mostrar algunos datos en un cuadro de lista/listView que sería desagradable (me refiero no solo a la lista, sino también a los elementos).

Lo intenté con ambos tipos de listas (ListBox y ListView), y utilicé su ItemTemplate y ElemContainerTyle. En todas partes que pude, establecí la propiedad enfocable en falso.

No veo ninguna otra forma que deshabilitar la lista, pero luego tengo que cambiar todo su estilo, para que parezca discapacitado.

¿Me he perdido algo? ¿Hay un tipo de lista de solo lectura que no conozco?

Gracias por tus ideas :)

¿Fue útil?

Solución

El problema que probablemente esté viendo es que cada elemento individual en la lista es enfocable. Sin embargo, puede anular eso ... intente agregar esto a su cuadro de lista:

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

Sin embargo, tenga en cuenta que esto hace que los elementos no sean sin selección (por teclado o por mouse). Puede establecer el elemento seleccionado mediante programación, pero no parece ser resaltado automáticamente más, por lo que realmente, esto se comporta casi lo mismo que un ItemsControl.

Otros consejos

Use un itemscontrol con textblocks en lugar de un cuadro de lista

<ItemsControl ItemsSource="{Binding MyListBoxItemsSource}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding MyDisplayName}" />
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top