Metody ListViewGroupCollection zgłaszają nowy wyjątek InvalidOperationException
Wcześniej został zgłoszony, InvalidOperationException jeśli ListViewGroupCollection metody zostały wywołane w trybie wirtualnym ListView i Handle zostały już utworzone. Począwszy od platformy .NET 6, te ListViewGroupCollection metody sprawdzają teraz tylko, czy ListView element jest w trybie wirtualnym. Jeśli tak jest, zgłaszają InvalidOperationException bardziej opisowy komunikat.
Poprzednie zachowanie
Rozważ następujący kod, który dodaje element ListViewGroup do elementu ListView:
ListViewGroup group1 = new ListViewGroup
{
Header = "CollapsibleGroup1",
CollapsedState = ListViewGroupCollapsedState.Expanded
};
listView.Groups.Add(group1);
Ten kod wygenerował element InvalidOperationException z następującym komunikatem:
Gdy element ListView jest w trybie wirtualnym, nie można wyliczyć kolekcji elementów ListView przy użyciu modułu wyliczającego ani wywołać metody GetEnumerator. Zamiast tego użyj indeksatora elementów ListView i uzyskaj dostęp do elementu według wartości indeksu.
Nowe zachowanie
Ten sam kod z poprzedniej sekcji zachowania generuje komunikat InvalidOperationException z następującym komunikatem:
Nie można dodawać grup do kolekcji grup ListView, gdy element ListView jest w trybie wirtualnym.
Kategoria zmiany
Ta zmiana ma wpływ na zgodność binarną.
Przyczyna wprowadzenia zmiany
Nowa InvalidOperationException wiadomość jest bardziej zrozumiała. Ponadto zamyka obejście, w którym deweloper może dodać ListViewGroup element do ListView elementu przed utworzeniem Handle .
Wprowadzona wersja
.NET 6 RC 2
Zalecana akcja
- Przejrzyj i, w razie potrzeby, zaktualizuj kod, aby nie dodawać elementu ListViewGroup do trybu wirtualnego ListView .
- Jeśli kod obsługuje InvalidOperationException wyjątki, może być konieczne zaktualizowanie komunikatu w celu odzwierciedlenia ListView , że element jest w trybie wirtualnym.