簡體   English   中英

兩個窗口顯示和控制WPF C#

[英]Two windows display and control WPF C#

我在WPF C#中還很陌生。 我對以下問題感到困擾:

可以說我有一個MainWindow.xaml ,並且其中包含了主程序邏輯。

我有第二個窗口,名為Second.xaml

我正在MainWindow.xaml.cs調用Second.xaml ,目前我正在這樣做:

MainWindow.xaml.cs:

var wind = new Second();
wind.Show();

這成功打開了第二個窗口,在這里我有幾個按鈕。 我的動機是使用Second.xaml.csMainWindow觸發事件

(即)在Second.xaml.cs中:

....
..
MainWindow mainwindowID = new MainWindow();
....
..
.

private void nextButton_Click(object sender, RoutedEventArgs e)
{
    mainwindowID.textBox.Content = "Displaying In Mainwindow";
}

當我單擊Second.xaml下一步按鈕時,我想要更新Mainwindow的文本框。

盡管程序正在運行,但MainWindow內部沒有任何變化。 可以像這樣控制它嗎?

我使用投影儀顯示MainWindow ,並在監視器上顯示第二個窗口。 所以我在第二個窗口內觸發事件,並希望它們顯示在MainWindow

還有其他解決方案嗎?

更新:如果文本框在SecondPage.xaml並使用Frame顯示在MainWindow.xaml內,如何從Second.xaml調用它?

在第一個窗口(MainWindow)中,您可以通過以下方式調用第二個窗口:

var wind = new Second();
wind.FirstWindow = this;
wind.Show();

而第二個窗口如下所示:

public MainWindow FirstWindow { get; set; }

private void nextButton_Click(object sender, RoutedEventArgs e)
{
    FirstWindow.textBox.Content = "Displaying In Mainwindow";   
}

我建議使用Delegates 看一下這里的鏈接;

代表們

這樣,您可以在第一個Window創建一個方法,如下所示:

private void WaitForResponse(object sender, RoutedEventArgs e)
{
    var second = new SecondWindow();
    second.ReturnTextBoxText += LoadTextBoxText;
    SecondWindow.ShowDialog();
}

然后在第二個Window ;

internal Action<string, int> ReturnTextBoxText;

private void nextButton_Click(object sender, RoutedEventArgs e)
{
    ReturnTextBoxText("Displaying In Mainwindow");   
}

最后在第一個Window加載該響應;

private void LoadSelectedCompany(string text, int passedCompanyID)
{
    contactCompanyTextBox.Text = companyName;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM