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
Ação recomendada
- 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.