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
Azione consigliata
- 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.