-1

这在 Windows 窗体中更容易。所以我有一个选项卡式程序。我添加了一个重命名选项卡的功能。当他们重命名选项卡时,它会将您定向到新的 WPF 窗口并在那里设置名称,如果他们单击“Enter”,则对话框结果将为真,并且在主窗口中代码为

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;

它将返回默认值...

4

1 回答 1

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;
}
于 2012-09-20T01:49:40.617 回答