Compartilhar via


Os métodos ListViewGroupCollection geram uma nova InvalidOperationException

Anteriormente, um InvalidOperationException era gerado se os métodos ListViewGroupCollection fossem invocados em um ListView no modo virtual e o Handle já tivesse sido criado. A partir do .NET 6, esses métodos ListViewGroupCollection agora só verificam se o ListView está no modo virtual. Se estiver, eles vão gerar uma InvalidOperationException com uma mensagem mais descritiva.

Comportamento anterior

Considere o código a seguir que adiciona um ListViewGroup a um ListView.

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

listView.Groups.Add(group1);

Esse código produziu uma InvalidOperationException mensagem com a seguinte mensagem:

Quando o ListView está no modo virtual, você não pode enumerar por meio da coleção de itens ListView usando um enumerador ou chamar GetEnumerator. Em vez disso, use o indexador de itens ListView e acesse um item por valor de índice.

Novo comportamento

O mesmo código da seção Comportamento anterior produz uma InvalidOperationException mensagem com a seguinte mensagem:

Não é possível adicionar grupos à coleção de grupos ListView quando o ListView estiver no modo virtual.

Alterar categoria

Essa alteração afeta a compatibilidade binária.

Motivo da alteração

A nova InvalidOperationException mensagem é mais compreensível. Além disso, ele fecha uma solução alternativa em que o desenvolvedor pode adicionar um ListViewGroup ao ListView antes que o Handle seja criado.

Versão introduzida

.NET 6 RC 2

  • Examine e, se necessário, atualize seu código para que ele não adicione um ListViewGroup a um ListView no modo virtual.
  • Se o seu código tratar exceções de InvalidOperationException, talvez seja necessário atualizar a mensagem para indicar que ListView está no modo virtual.

APIs afetadas