在另一个窗口中使用文本框输入?

时间:2017-09-01 14:54:18

标签: c# wpf textbox textblock

所以我一直在寻找我的问题的答案,但我找不到任何有用的东西。

问题在于我希望用户在文本框中输入名称,然后按一个按钮打开一个新窗口,该窗口将在文本块中显示所选名称。

我尝试在文本块的第二个窗口中使用绑定:

{Binding Path=text, ElementName=TName}

和TName是唯一一个被展示出来的......从第一个窗口出来我想要的东西。 所以我对如何使用第一个窗口中文本框的输入感到困惑。

<TextBox x:Name="TIName" HorizontalAlignment="Left" Margin="10,10,0,0" TextWrapping="Wrap" Text="Name" Width="120" Height="23" VerticalAlignment="Top"/>

这是我在第一个窗口使用的内容:

<TextBlock x:Name="TName" HorizontalAlignment="Left" Margin="10,10,0,0" TextWrapping="Wrap" Text="{Binding Path=text, ElementName=TName} " VerticalAlignment="Top">

是我在第二个窗口的内容。

这是第一个窗口上按钮背后的代码:

private void Submit_Click(object sender, RoutedEventArgs e)
    {
        var test= new test();

        this.Close();
        test.Show();
    }

提前致谢:)欢迎任何帮助。

1 个答案:

答案 0 :(得分:1)

你不能通过绑定来做到这一点。每个窗口中的元素及其名称的范围限定在它们定义的窗口中;每个窗口的内容可能彼此不了解。

但是,这应该有效:

private void Submit_Click(object sender, RoutedEventArgs e)
{
    var test = new test();

    test.TName.Text = this.TIName.Text;

    this.Close();
    test.Show();
}

此绑定:

{Binding Path=text, ElementName=TName}

如果TNameTIName都位于同一窗口中,但有两个小修复,则会更正:绑定中的属性名称区分大小写,Text属性以大写T。该控件上不存在名为text(全部小写)的属性。其次,TextBox的名称为TIName,而不是TName

必须是这样的:

{Binding Path=Text, ElementName=TIName}

但同样,只有两个控件都在同一个窗口中,这不是这里的情况。