Los métodos ListViewGroupCollection inician una nueva excepción InvalidOperationException

Anteriormente, se iniciaba InvalidOperationException si se invocaban métodos ListViewGroupCollection en ListView en modo virtual y ya había sido creado Handle. A partir de .NET 6, estos métodos ListViewGroupCollection ahora solo comprueban si ListView está en modo virtual. Si es así, inician InvalidOperationException con un mensaje más descriptivo.

Comportamiento anterior

Considere el siguiente código que agrega ListViewGroup a ListView:

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

listView.Groups.Add(group1);

Este código produjo InvalidOperationException con el mensaje siguiente:

Cuando ListView se encuentra en modo virtual, no se puede enumerar mediante la colección de elementos ListView con un enumerador o llamada GetEnumerator. Utilice el indizador de elementos ListView en su lugar y obtenga acceso a un elemento por su valor de índice.

Comportamiento nuevo

El mismo código de la sección Comportamiento anterior genera un objeto InvalidOperationException con el mensaje siguiente:

No se pueden agregar grupos a la colección de grupos ListView cuando ListView esté en modo virtual.

Cambio de categoría

Este cambio afecta a la compatibilidad binaria.

Motivo del cambio

El nuevo mensaje InvalidOperationException es más comprensible. Además, cierra una solución alternativa en la que el desarrollador podría agregar ListViewGroup a ListView antes de que se cree Handle.

Versión introducida

.NET 6 RC 2

  • Revise y, si es necesario, actualice el código para que no agregue un objeto ListViewGroup a ListView en modo virtual.
  • Si el código controla las excepciones InvalidOperationException, es posible que tenga que actualizar el mensaje para reflejar que ListView está en modo virtual.

API afectadas