none
Aguardar confirmação para voltar à MainPage RRS feed

  • 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.

    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


    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:

    http://1drv.ms/15Tt6Zr

    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.

    sexta-feira, 30 de janeiro de 2015 13:12