Domanda

Ho provato per un po 'di tempo a visualizzare alcuni dati in una casella di lista/ListView che non sarebbe associato (intendo non solo l'elenco, ma anche gli elementi in esso).

Ho provato con entrambi i tipi di elenco (ListBox e ListView) e ho usato i loro elementiTemplate e ItemContanerstyle. Ovunque potessi, ho impostato la proprietà focalizzabile su False.

Non vedo nessun altro modo che disabilitare l'elenco, ma poi devo cambiare tutto il suo stile, per farlo apparire non disabilitato.

Mi sono perso qualcosa? Esiste un tipo di elenco di sola lettura che non conosco?

Grazie per le tue idee :)

È stato utile?

Soluzione

Il problema che probabilmente stai vedendo è che ogni singolo elemento nell'elenco è focalizzabile. Tuttavia, puoi sovrascrivere questo ... prova ad aggiungere questo alla tua casella di elenco:

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

Si noti tuttavia che ciò rende gli elementi insignificanti (per tastiera o per mouse). È possibile impostare l'articolo selezionato a livello di programmazione, ma non sembra essere più evidenziato automaticamente - quindi in realtà, questo si comporta quasi lo stesso di un ItemsControl.

Altri suggerimenti

Utilizzare un controllo elementi con blocchi di testo anziché una casella di elenco

<ItemsControl ItemsSource="{Binding MyListBoxItemsSource}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding MyDisplayName}" />
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top