2012-09-20 104 views
-1

在Windows窗體中這很容易。所以我有一個選項卡式的程序。我添加了一個重命名選項卡的功能。當他們重新命名標籤它引導你到一個新的WPF窗口,他們設置的名稱出現,如果他們點擊「確認」對話框中的結果將是真實的,並在主窗口中的代碼是如何從另一個WPF窗口向另一個WPF窗口發送字符串或任何其他值?

TabRename ren = new TabRename(); 
ren.txtNewN.SetValue(TextBox.TextProperty, tabI[tabM.SelectedIndex - 1].Header); 
if (ren.ShowDialog() == true) 
    { 
    tabI[tabM.SelectedIndex - 1].Header = ren.txtNewN.Text; 
    } 

問題還有就是它返回一個由線

ren.txtNewN.SetValue(TextBox.TextProperty, tabI[tabM.SelectedIndex - 1].Header); 

設置,如果你通過

tabI[tabM.SelectedIndex - 1].Header = ren.txtNewN.Text; 

獲取的價值它將返回一個默認的第一個值...

+0

爲什麼'ren.txtNewN.SetValue(TextBox.TextProperty,塌鼻[tabM.SelectedIndex - 1] .Header);'?你可以使用'ren.txtNewN.Text = tabI [tabM.SelectedIndex - 1] .Header;' – JDB

回答

0

我對你發佈的代碼有點困惑,但假設你的TabRename代碼看起來像這樣,我會說它應該工作正常。

public class TabRename() 
{ 
    public string NewName 
    { 
     get 
     { 
      return txtNewN.Text; 
     } 
     set 
     { 
      txtNewN.Text = value; 
     } 
    } 
} 

然後只是說該

TabRename ren = new TabRename(); 
ren.NewName = tabI[tabM.SelectedIndex - 1].Header; 
if (ren.ShowDialog()) 
{ 
    tabI[tabM.SelectedIndex - 1].Header = ren.NewName; 
} 
相關問題