[英]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.cs
在MainWindow
觸發事件
(即)在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.