2017-09-01 67 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

相關問題