ListViewGroupCollection-Methoden lösen neue InvalidOperationException aus

Zuvor wurde eine InvalidOperationException ausgelöst, wenn ListViewGroupCollection-Methoden für eine ListView im virtuellen Modus aufgerufen wurden und der Handle bereits erstellt wurde. Ab .NET 6 überprüfen diese ListViewGroupCollection Methoden jetzt nur noch, ob der ListView sich im virtuellen Modus befindet. Wenn dies der Fall ist, werfen sie ein InvalidOperationException mit einer aussagekräftigeren Nachricht.

Vorheriges Verhalten

Berücksichtigen Sie den folgenden Code, der ein ListViewGroup zu einem ListView hinzufügt:

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

listView.Groups.Add(group1);

Dieser Code hat eine InvalidOperationException mit der folgenden Meldung erzeugt:

Wenn sich die ListView im virtuellen Modus befindet, können Sie die ListView-Elementsammlung nicht mithilfe eines Enumerationsgebers aufzählen oder GetEnumerator aufrufen. Verwenden Sie stattdessen den ListView-Elementindexer, und greifen Sie nach Indexwert auf ein Element zu.

Neues Verhalten

Derselbe Code aus dem Abschnitt "Vorheriges Verhalten " erzeugt eine InvalidOperationException mit der folgenden Meldung:

Sie können der ListView-Gruppensammlung keine Gruppen hinzufügen, wenn sich die ListView im virtuellen Modus befindet.

Kategorie ändern

Diese Änderung wirkt sich auf die Binäre Kompatibilität aus.

Grund für Änderung

Die neue InvalidOperationException Nachricht ist verständlicher. Darüber hinaus wird eine Problemumgehung vermieden, bei der der Entwickler der ListViewGroup vor dem Erstellen des ListView eine Handle hinzufügen konnte.

Eingeführte Version

.NET 6 RC 2

  • Überprüfen Sie Ihren Code und aktualisieren Sie ihn gegebenenfalls, damit er im virtuellen Modus kein ListViewGroup zu einem ListView hinzufügt.
  • Wenn Ihr Code InvalidOperationException-Ausnahmen behandelt, müssen Sie möglicherweise die Meldung aktualisieren, sodass angezeigt wird, dass sich der ListView im virtuellen Modus befindet.

Betroffene APIs