-1

これは、Windows フォームの方が簡単でした。だから私はタブ付きのプログラムを持っています。そして、タブの名前を変更する機能を追加しました。タブの名前を変更すると、新しい WPF ウィンドウが表示され、そこに名前が設定されます。[Enter] をクリックすると、ダイアログの結果は true になり、メイン ウィンドウのコードは次のようになります。

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 に答える