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.

Foi útil?

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:

http://blogs.vbcity.com/jspano/articles/198.aspx

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