我想从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());
}
答案 0 :(得分:1)
有很多问题。您说_beseda()
上有Page1
个功能,但您在Page2()
中引用了button1_click()
。另外,如果我假设您在Page1
中表示button1_click()
,则表示您正在创建新的Page1
,然后您要求它提供文本框的文字....所以当然它是空的。你还没有放任何东西。
即使您打算将Page2
放在那里,问题仍然是一样的。
答案 1 :(得分:1)
在Windows手机中的页面之间传递数据有两种策略。
<强> 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。导航时将值作为参数传递
在将文本框值嵌入到Page 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);
}
以下是一些有用的链接..