2017-09-01 66 views
-1

所以我一直在寻找我的问题的答案,但我找不到任何有用的东西。在另一个窗口中使用文本框输入?

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

我已经用我的文字块第二个窗口结合的尝试:

{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(); 
    } 

谢谢:)任何帮助将受到欢迎。

+0

看这里也许可以帮助https://stackoverflow.com/questions/40379892/passing-values-through-forms-c-sharp –

+0

谢谢埃德“test.TName.Text = this.TIName.Text;”成功了!感谢您的快速帮助:) – jmadp

回答

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} 

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

+0

感谢您的快速解决方案^^并不期待修复是1单行:') – jmadp

相关问题