0

TextBox からテキストを読み取り、別のページに送信したい。しかし、別のページでは空の文字列を取得し続けます。なぜこれが機能しないのですか?

私はこれをページ1に持っています:

public string _beseda()
{
    return textBox1.Text;          
}

そして、この文字列を取得する必要がある2ページ目:

private void button1_Click(object sender, RoutedEventArgs e)
{
    Page2 neki = new Page2();
    MessageBox.Show(neki._beseda());
}
4

2 に答える 2

1

いくつかの問題があります。あなたはその_beseda()機能を に持っていると言いますがPage1、 を参照Page2()していますbutton1_click()Page1さらに、私があなたが意図したと仮定するとbutton1_click()、あなたは新しいものを作成Page1していて、テキストボックスのテキストを要求します....もちろん空です。あなたはそれに何も入れていません。

Page2代わりにそこに置くつもりだったとしても、問題は同じです。

于 2013-04-05T20:44:25.920 に答える
1

Windows Phone のページ間でデータを渡す方法は 2 つあります。

  1. App.cs を使用する
  2. ナビゲーション中にデータをパラメーター値として渡す

1.App.cs の使用

App.xaml の App.cs コード ビハインドを開き、次のように記述します。

 // To store Textbox the value   
 public string storeValue;

ページ 1 内

 protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
    {
        base.OnNavigatedFrom(e);
        App app = Application.Current  as App;
        app.storeValue = textBox1.Text;            
    }

ページ2

 private void button1_Click(object sender, RoutedEventArgs e) {

    App app = Application.Current  as App;
    MessageBox.Show(app.storeValue);
}

2. ナビゲート中にパラメータとして値を渡す

埋め込みテキストボックスの値をページ URL に移動する前に

    string newUrl = "/Page2.xaml?text="+textBox1.Text;
    NavigationService.Navigate(new Uri(newUrl, UriKind.Relative));

ページ 2 で

    //Temporarily hold the value got from the navigation 
    string textBoxValue = "";
    protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);
        //Retrieve the value passed during page navigation
         NavigationContext.QueryString.TryGetValue("text", out textBoxValue)               
    }


     private void button1_Click(object sender, RoutedEventArgs e) {

       MessageBox.Show(textBoxValue);
     }

ここにいくつかの便利なリンクがあります..

于 2013-04-05T22:00:20.303 に答える