Usuário com melhor resposta
Aguardar confirmação para voltar à MainPage

Pergunta
-
Olá pessoal tenho mais um problema. Estou na página 2 editando um texto e caso o botão voltar (BackKey) seja pressionado vai aparecer uma mensagem pedindo confirmação para salvar o texto. Estou usando o seguinte código para o botão voltar:
private async void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e) { e.Handled = true; if (txtTitulo.Text != DefaultTitle || txtTexto.Text != DefaultText) { MessageDialog dialog = new MessageDialog("Deseja salvar as alterações antes de sair?", "Salvar alterações"); dialog.Commands.Add(new UICommand("não salvar", null, 1)); dialog.Commands.Add(new UICommand("salvar", null, 2)); var result = await dialog.ShowAsync(); if (result.Label == "não salvar") { Frame.GoBack(); } else if (result.Label == "salvar") { if (txtTitulo.Text == string.Empty || txtTitulo.Text == " ") { await msg.MessageBoxDisplay("Digite um título para o arquivo."); txtTitulo.Focus(FocusState.Keyboard); } else { if (folder == null) { hplnk_pasta_Click(null, null); } else if (folder != null) { string filename = txtTitulo.Text; if (!filename.EndsWith(".txt")) filename += ".txt"; await saveStringToLocalFile(filename, txtTexto.Text); Frame.GoBack(); } } } else { return; } } else { Frame.GoBack(); } }
Caso eu não tenha alterado nada ele volta pra MainPage normal, caso eu tenha alterado alguma coisa ele deve exibir a confirmação.
O problema é que quando ele exibe a confirmação volta pra MainPage do mesmo jeito. Ele deveria aguardar pois é um método Async.
Alguém pode me ajudar a resolver isso?
quarta-feira, 28 de janeiro de 2015 13:22
Respostas
-
Bom dia Franklin,
O que recomendaria a fazer no submit em vez de usar Frame.Goback seria utilizar o redirecionamento direto par aonde deseja por exemplo esta no cadastro envia a informação para onde deseja salvar e após salvar mandar para pagina que deseja.
Abraços
Matheus Leopardi Mello Canelada Campos
Esse conteudo e fornecido sem garantias de qualquer tipo, seja expressa ou implicita.
TechNet Community Support
Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais facil para os outros visitantes encontrarem a resolusao mais tarde.- Sugerido como Resposta Eduardo.Romero quarta-feira, 18 de fevereiro de 2015 16:56
- Marcado como Resposta Ricardo Barbosa Cortes quarta-feira, 18 de fevereiro de 2015 16:56
sexta-feira, 30 de janeiro de 2015 13:12
Todas as Respostas
-
Olá, Franklin.
Neste caso você deve criar um Event Handler para cada um dos botões e realizar o processamento em cada um deles.
Neste link você tem explicações e exemplos oficiais de uso: MessageDialog.ShowAsync | showAsync method.
Abraço.
Joel Rodrigues MSP, MCP, MTA Editor geral .NET Magazine E Easy .NET Magazine
- Editado Joel Rodrigues de Lima NetoMVP quarta-feira, 28 de janeiro de 2015 14:37
- Sugerido como Resposta Matheus L. M. C. Campos sexta-feira, 30 de janeiro de 2015 13:03
- Não Sugerido como Resposta Ricardo Barbosa Cortes sexta-feira, 30 de janeiro de 2015 17:09
quarta-feira, 28 de janeiro de 2015 14:36 -
Olá Joel, olha eu não consegui resultados. Mesmo criando um Event Handler a mensagem aparece mas volta pra MainPage.
Aqui tem um exemplo simples do que está acontecendo:
quarta-feira, 28 de janeiro de 2015 15:42 -
Bom dia Franklin,
O que recomendaria a fazer no submit em vez de usar Frame.Goback seria utilizar o redirecionamento direto par aonde deseja por exemplo esta no cadastro envia a informação para onde deseja salvar e após salvar mandar para pagina que deseja.
Abraços
Matheus Leopardi Mello Canelada Campos
Esse conteudo e fornecido sem garantias de qualquer tipo, seja expressa ou implicita.
TechNet Community Support
Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais facil para os outros visitantes encontrarem a resolusao mais tarde.- Sugerido como Resposta Eduardo.Romero quarta-feira, 18 de fevereiro de 2015 16:56
- Marcado como Resposta Ricardo Barbosa Cortes quarta-feira, 18 de fevereiro de 2015 16:56
sexta-feira, 30 de janeiro de 2015 13:12