Pergunta

Eu tenho um aplicativo com um grande ListView que é terrivelmente lento, então eu estou implementando VirtualMode. MSDN não parecem cobrir como eu iria adicionar e excluir novos itens no meio da listview.

Por exemplo, o ListView tem 1000 itens (representando arquivos no disco) e depois da população inicial do ListView (pelo evento RetrieveVirtualItem) alguns arquivos serão apagados e alguns adicionados para que VirtualListSize pode até ser o mesmo depois da atualização .

Pergunta 1) Como posso dizer ao ListView 'esses itens foram alteradas / deletadas' para que ele repete a consulta?

Além disso, alguns dos arquivos apenas mudar e eu gostaria de refletir seu status alterado na listview.

Pergunta 2) Como faço para encontrar um item da listview dado que VirtualMode não me deixa acessar a coleção de itens que eu estava usando antes (eu usei o método ContainsKey em que a coleta).

Parece fácil, mas eu não posso vê-lo eu mesmo. Ajuda muito apreciada.

Ryan

Foi útil?

Solução

Para adicionar ou itens de exclusão, simplay definir VirtualListSize para a contagem total de itens. Para atualizar itens individuais usar RedrawItems.

Para localizar um determinado item, você usa o recipiente que você já tem, não voltar para o ListView. Os indicies dentro de sua lista deve corresponder-se com os itens da ListView.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top