所以我一直在寻找我的问题的答案,但我找不到任何有用的东西。
问题在于我希望用户在文本框中输入名称,然后按一个按钮打开一个新窗口,该窗口将在文本块中显示所选名称。
我尝试在文本块的第二个窗口中使用绑定:
{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 :(得分: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}
如果TName
和TIName
都位于同一窗口中,但有两个小修复,则会更正:绑定中的属性名称区分大小写,Text
属性以大写T
。该控件上不存在名为text
(全部小写)的属性。其次,TextBox
的名称为TIName
,而不是TName
。
必须是这样的:
{Binding Path=Text, ElementName=TIName}
但同样,只有两个控件都在同一个窗口中,这不是这里的情况。