TextBox在其他页面中输入到TextBlock

时间:2013-12-21 20:58:03

标签: c# wpf data-binding textbox textblock

我正在使用c#和WPF Web应用程序,我想构建一个简单的表单,其中包含两个用于用户输入的文本框(名称和电话号码)和一个“发送”按钮。当用户点击发送按钮时,它将重定向到另一个页面,并将显示(带有文本块)输入的值。

我试着阅读有关数据绑定的内容,但仍未成功使其正常工作。
1.如何将输入的值保存到变量中?
2.如何从第二页调用这些变量并显示保存的文本?

希望得到帮助,谢谢!

表单的xaml代码:

    

<TextBlock Height="20" Width="120" Margin="36,43,144,237">enter details:</TextBlock>
<TextBlock Height="20" Width="40" Margin="36,69,224,211">Name:</TextBlock>
<TextBlock Height="20" Width="40" Margin="36,103,224,177">Phone:</TextBlock>
<!--textboxes-->
<TextBox Height="20" Width="95" Margin="100,69,104,211" Name="getName" Background="Gray"/>
<TextBox Height="20" Width="95" Margin="100,103,105,177" Name="getPhoneNumber" Background="Gray"/>
<!--          -->
<Button Height="20" Width="50" Margin="218,103,32,177" Name="sendButton" Click="sendButton_Click">send</Button>

背后应该是什么代码?我只想在带有textblock的其他页面上显示输入的值。 这是我用来重定向到“结果页面”的功能:

public void sendButton_Click(object sender, RoutedEventArgs e)
{
    Submit();
}

void Submit()
{
    Page2 resultpage = new Page2();
    NavigationService.Navigate(resultpage);
}

修改
好的,由于Mike的回答,我成功地使它成功。

感谢Mike,对于其他用户来说,这个代码现在看起来如何:
表单页面xaml代码:

    

<TextBlock Height="20" Width="120" Margin="36,43,144,237">enter details:</TextBlock>
<TextBlock Height="20" Width="40" Margin="36,69,224,211">Name:</TextBlock>
<TextBlock Height="20" Width="40" Margin="36,103,224,177">Phone:</TextBlock>
<!--textboxes-->
<TextBox Height="20" Width="95" Margin="100,69,104,211" Name="getName" Background="Gray"/>
<TextBox Height="20" Width="95" Margin="100,103,105,177" Name="getPhoneNumber" Background="Gray"/>
<!--          -->
<Button Height="20" Width="50" Margin="218,103,32,177" Name="sendButton" Click="sendButton_Click">send</Button>

表单页面c#代码背后:

    public partial class Page1 : Page
{
    public Page1()
    {
        InitializeComponent();
    }

    public void sendButton_Click(object sender, RoutedEventArgs e)
    {
        Submit();
    }

    void Submit()
    {
        Page2 resultpage = new Page2(getName.Text, getPhoneNumber.Text);
        NavigationService.Navigate(resultpage);
    }
}

结果页xaml代码:

    <Grid>
    <TextBlock x:Name="showName" Height="50" Width="100" Margin="65,125,73,125" Text="{Binding ElementName=showName, Path=Text}" />
</Grid>

结果页c#代码背后:

        public Page2(string name, string phoneNumber)
    {
        InitializeComponent();
        showName.Text = name;
    }

再次感谢迈克:)

3 个答案:

答案 0 :(得分:1)

好的,我会做的。您可以在Page2的构造函数中创建参数:

public Page2(string name, string phoneNumber)
{
    //login to handle name and phone number

}

在您的第一页上,您只需使用xaml中的Name属性传递姓名和电话号码。

void Submit()
{
    Page2 resultpage = new Page2(getName.Text, getPhoneNumber.Text);
    NavigationService.Navigate(resultpage);
}

答案 1 :(得分:0)

<Page x:Class="Login.Page1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
  mc:Ignorable="d" 
  d:DesignHeight="253" d:DesignWidth="276"
Title="Page1" Background="Blue">
  <Grid>
    <TextBlock Text="Prince jain" HorizontalAlignment="Left" VerticalAlignment="Top" Height="50" Width="100" Margin="48,0,0,0" FontSize="40"></TextBlock>
    <TextBlock Height="50" FontSize="18" HorizontalAlignment="Left" Margin="6,141,0,0" Name="txtnavigatevalue" Text="Test Navigation" VerticalAlignment="Top" />
    <TextBox Height="23" HorizontalAlignment="Left" Margin="134,144,0,0" Name="txtnavigation" VerticalAlignment="Top" Width="130" />
    <Button Content="Check" Height="23" HorizontalAlignment="Left" Margin="134,187,0,0" Name="buttoncheck" VerticalAlignment="Top" Width="75" Click="buttoncheck_Click" />
  </Grid>
</Page>

<Page x:Class="Login.Page2"
          xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
          xmlns:mc="http://schemas.openxmlformats.org/markup-      compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      mc:Ignorable="d" 
      d:DesignHeight="300" d:DesignWidth="300"
      Title="Page2" Background="BlueViolet">

  <Grid>
    <TextBlock Height="23" HorizontalAlignment="Left" Margin="46,94,0,0"                         Name="textBlock1" Text="TextBlock" VerticalAlignment="Top" Width="198" />
  </Grid>
</Page>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace Login
{
    /// <summary>
    /// Interaction logic for Page1.xaml
    /// </summary>
    public partial class Page1 : Page
    {
        public Page1()
        {
            InitializeComponent();
        }

        private void buttoncheck_Click(object sender, RoutedEventArgs e)
        {

            Page2 p2 = new Page2();
            p2.textBlock1.Text = txtnavigation.Text;
            //txtnavigatevalue.Text = "";
            NavigationService.Navigate(p2);
        }
    }
}

答案 2 :(得分:-1)

private void buttoncheck_Click(object sender, RoutedEventArgs e)
{
    Page2 p2 = new Page2();
    p2.textBlock1.Text = txtnavigation.Text;
    //txtnavigatevalue.Text = "";
    NavigationService.Navigate(p2);
}