Como implementar undo / redo de arquivos mapeados em um treeview
Pergunta
Alguém pode dar uma idéia de como eu deveria implementar undo / redo de corte / copiar / colar de arquivos (dirs, subdiretórios) mapeado em um treeview em C #?
Seria ótimo ter alguns exemplos de código.
Solução
Para um rápido desfazer / refazer linear, você pode usar Memento padrão usando zip de arquivo como lembrança.
Outras dicas
Considere a implementação Comando padrão (GoF):
- Coloque a sua lógica de ações em classes que implementam ICommand comum {Do (); Anular ();} interface.
- Em cada ação do usuário que você criar o objeto de comando solicitado e inicializar com parâmetros de contexto como nome de arquivo novos e antigos.
- Chamada Do (), coloque objeto em pilha de comandos concluídos.
- Cada comando é fornecido com o contexto, então chamando Undo () pode reverter as alterações.
- Considere mover arquivos para a pasta temporária em vez de remoções.
undo / redo é tipicamente implementado usando o chamado "padrão de comando". Pesquisar com o Google ou leia o seguinte artigo:
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow