簡體   English   中英

無法從 Windows Phone 8.1 內容對話框導航

[英]Can´t navigate from Windows Phone 8.1 Content Dialog

我創建了一個 ContentDialog,其中包含一個文本框,用戶可以在其中輸入 SMS 代碼。 當此代碼正確時,我需要用戶導航到主頁。

問題是 Navigate.Frame 在此上下文中不存在。

請問,我做錯了什么?

 private async void ContentDialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
    {

        String _confirmaSms = "https://example.com";
        RestClient client = new RestClient();
        string msisdn = PrimaryButtonCommandParameter.ToString();
        string codigoConfirmacao = txtCodigoConfirmacao.Text;

        Usuario usuario = new Usuario()
        {
            msisdn = msisdn,
            codesms = codigoConfirmacao
        };

        string output = JsonConvert.SerializeObject(usuario);

        //Debug.WriteLine(output);

        string response = await client.RestConnection(_confirmaSms, "POST", output);
        JObject responseObj = JObject.Parse(response);
        JObject resultObj = (JObject)responseObj["result"];
        string result = resultObj["codesms"].ToString();

        if (usuario.codesms.ToString() == result && result != null)
        {
           //code to navigate
        }
        else
        {
            //code to navigate to other page
        }

        Debug.WriteLine(resultObj["ltoken"]);



    }

最后,經過一番研究,我找到了答案。

必須在課程開始時實例化 RootFrame。

public sealed partial class ConfirmaSMS : ContentDialog
{
    Frame rootFrame = Window.Current.Content as Frame;

    public ConfirmaSMS()
    {
        this.InitializeComponent();
    }

    private async void ContentDialog_PrimaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
    {

        String _confirmaSms = "https://www.Example.com";
        RestClient client = new RestClient();
        string msisdn = PrimaryButtonCommandParameter.ToString();
        string codigoConfirmacao = txtCodigoConfirmacao.Text;

        string output = JsonConvert.SerializeObject(usuario);

        //Debug.WriteLine(output);

        string response = await client.RestConnection(_confirmaSms, "POST", output);
        JObject responseObj = JObject.Parse(response);
        JObject resultObj = (JObject)responseObj["result"];
        string result = resultObj["codesms"].ToString();

        if (usuario.codesms.ToString() == result && result != null)
        {
            Debug.WriteLine(result.ToString());
            rootFrame.Navigate(typeof(HomePage));
        }
        else
        {
            confirmaSMS.SecondaryButtonCommandParameter = false;
            confirmaSMS.Hide();
        }

        Debug.WriteLine(resultObj["ltoken"]);



    }

    private void ContentDialog_SecondaryButtonClick(ContentDialog sender, ContentDialogButtonClickEventArgs args)
    {

    }




}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM