Udostępnij za pośrednictwem


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 iHandle 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

  • 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.

Dotyczy interfejsów API