Sdílet prostřednictvím


Metody ListViewGroupCollection vyvolá novou výjimku InvalidOperationException

Dříve došlo k InvalidOperationException vyvolání ListViewGroupCollection metod ve virtuálním ListView režimu a Handle již byla vytvořena. Počínaje rozhraním .NET 6 teď tyto ListViewGroupCollection metody kontrolují pouze to, jestli je ve virtuálním ListView režimu. Pokud ano, zobrazí InvalidOperationException se jim popisnější zpráva.

Předchozí chování

Vezměte v úvahu následující kód, který přidá ListViewGroup do ListView:

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

listView.Groups.Add(group1);

Tento kód vytvořil InvalidOperationException následující zprávu:

Pokud je ListView ve virtuálním režimu, nelze vytvořit výčet prostřednictvím kolekce položek ListView pomocí enumerátoru nebo volání GetEnumerator. Místo toho použijte indexer položek ListView a získejte přístup k položce podle hodnoty indexu.

Nové chování

Stejný kód z oddílu Předchozí chování vytvoří InvalidOperationException následující zprávu:

Skupiny nelze přidat do kolekce skupin ListView, pokud je ListView ve virtuálním režimu.

Kategorie změny

Tato změna má vliv na binární kompatibilitu.

Důvod změny

Nová InvalidOperationException zpráva je srozumitelnější. Kromě toho zavře alternativní řešení, kde by vývojář mohl přidat k ListViewGroup ListView před vytvořením Handle .

Zavedená verze

.NET 6 RC 2

  • Zkontrolujte a v případě potřeby aktualizujte kód tak, aby nepřidá ListViewGroup do ListView virtuálního režimu.
  • Pokud váš kód zpracovává InvalidOperationException výjimky, možná budete muset zprávu aktualizovat tak, aby odrážela, že je ve ListView virtuálním režimu.

Ovlivněná rozhraní API