2014-11-04 34 views
1

我在WPF應用程序的窗口之間切換時遇到問題。 也就是說。 MainWindow有一個文本框,Window1有一個編輯這個文本框文本的按鈕。僅在其中一個窗口之間進行切換

當我想中止版本,並關閉(this.hide)Window1那裏打開一個默認文本框文本的MainWindow的新實例。如何避免這種情況?

主窗口:

Window1 window = new Window1(); 

Button_click 
{ 
window.Show(); 
this.Hide(); 
} 

窗口1:

MainWindow mw = new MainWindow(); 

Button_click 
{ 
mw.Show(); 
this.Hide(); 
} 

我也試圖與:

Window1 window = null; 

Button_click 
    { 
     if(window == null) 
     { 
     window = new Window1(); 
     window.Show(); 
     } 
     else 
     window.Visibility = Visibility.Visible; 

    this.Visibility = Visibility.Hidden; 
} 

而且在窗口1的代碼相似,但它似乎沒有工作過。

我讀過所有類似問題的主題,但這些解決方案不適合我。

+0

*不工作*過於模糊。你發佈的代碼是無效的C#。 – 2014-11-04 22:37:47

+1

不要在Window1中創建一個MainWindow的新實例。請傳遞參考。 – MikeG 2014-11-04 22:38:37

回答

1

主窗口:

private void ButtonBase_OnClick(object sender, RoutedEventArgs e) 
    { 
     var window1 = new Window1(this); 
     window1.Show(); 
     Hide(); 
    } 

窗口1:

private MainWindow _mainWindow; 

    public Window1(MainWindow refMainWindow) 
    { 
     InitializeComponent(); 
     _mainWindow = refMainWindow; 
    } 

    private void ButtonBase_OnClick(object sender, RoutedEventArgs e) 
    { 
     _mainWindow.TextBox1.Text = "Hi From Window 1"; 
     _mainWindow.Show(); 
     Hide(); 
    } 
+0

可悲的是我不明白它是如何工作的(也許有一天...),但它完美的作品。這就是我的預期。謝謝:) 編輯:另一個問題,我可以做類同樣的事情(而不是創建新的實例eveytime)? – wjtk4444 2014-11-05 12:03:20