I metodi ListViewGroupCollection generano una nuova eccezione InvalidOperationException

In precedenza veniva generata una InvalidOperationException se i metodi ListViewGroupCollection venivano richiamati in ListView in modalità virtuale ed era già stato creato Handle. A partire da .NET 6, questi metodi ListViewGroupCollection controllano ora solo se ListView è in modalità virtuale. In caso affermativo, generano una InvalidOperationException con un messaggio più descrittivo.

Comportamento precedente

Si consideri il codice seguente che aggiunge un ListViewGroup a ListView:

ListViewGroup group1 = new ListViewGroup
{
    Header = "CollapsibleGroup1",
    CollapsedState = ListViewGroupCollapsedState.Expanded
};

listView.Groups.Add(group1);

Questo codice produceva una InvalidOperationException con il messaggio seguente:

Quando ListView è in modalità virtuale, non è possibile enumerare la raccolta di elementi ListView usando un enumeratore o chiamare GetEnumerator. Usare invece l'indicizzatore di elementi ListView e accedere a un elemento in base al valore di indice.

Nuovo comportamento

Lo stesso codice della sezione Comportamento precedente produce una InvalidOperationException con il messaggio seguente:

Non è possibile aggiungere gruppi alla raccolta di gruppi ListView quando ListView è in modalità virtuale.

Categoria di modifiche

Questa modifica influisce sulla compatibilità binaria.

Motivo della modifica

Il nuovo messaggio di InvalidOperationException è più comprensibile. Chiude inoltre una soluzione alternativa in cui lo sviluppatore potrebbe aggiungere un ListViewGroup a ListView prima della creazione di Handle.

Versione di introduzione

.NET 6 RC 2

  • Esaminare e, se necessario, aggiornare il codice in modo che non aggiunga un ListViewGroup a ListView in modalità virtuale.
  • Se il codice gestisce eccezioni InvalidOperationException, potrebbe essere necessario aggiornare il messaggio in modo da riflettere che ListView è in modalità virtuale.

API interessate