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 os Handle já tivessem sido criados. Do .NET 6 em diante, esses métodos ListViewGroupCollection agora só verificam se ListView está no modo virtual. Se estiver, eles vão gerar uma InvalidOperationException com uma mensagem mais descritiva.

Comportamento anterior

Considere o seguinte código 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 com a seguinte mensagem:

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

Novo comportamento

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

Você não poderá adicionar grupos à coleção de grupos do ListView quando ele estiver no modo virtual.

Categoria da alteração

Essa alteração afeta a compatibilidade com binários.

Motivo da alteração

A nova mensagem InvalidOperationException é mais compreensível. Além disso, ela fecha uma solução alternativa em que o desenvolvedor poderia adicionar um ListViewGroup a ListView antes que Handle fosse 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 código tratar exceções InvalidOperationException, talvez seja necessário atualizar a mensagem para refletir que ListView está no modo virtual.

APIs afetadas