所以我必须将第二个窗口上的标签内容转换为主窗口上文本框的输入。我在同一个窗口上执行此操作没有问题,但我不知道如何跨多个窗口获取数据。到目前为止,我有很多事情,但我无法让它工作。这是我目前的代码:
public void Button_Click(object sender, RoutedEventArgs e)
{
label1.Content = textBox1.Text;
label2.Content = textBox2.Text;
}
所以我想做同样的事情,只有文本框在 MainWindow 上,标签在 Window1 上。是否有捷径可寻?如果没有,什么是更好的选择?
如果您Window1
从显示,则MainWindow
可以MainWindow
在创建它的实例时将其注入到 的引用中:
public partial class Window1 : Window
{
private readonly MainWindow _mainWindow;
public Window1(MainWindow mainWindow)
{
InitializeComponent();
_mainWindow = mainWindow;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
label1.Content = _mainWindow.textBox1.Text;
label2.Content = _mainWindow.textBox2.Text;
}
}
主窗口:
Window1 win = new Window1(this);
win.Show();
您还可以像这样获得对MainWindow
from的引用Window1
:
private void Button_Click(object sender, RoutedEventArgs e)
{
MainWindow mainWindow = Application.Current.Windows.OfType<MainWindow>().FirstOrDefault();
if (mainWindow != null)
{
label1.Content = mainWindow.textBox1.Text;
label2.Content = mainWindow.textBox2.Text;
}
}
但我建议你学习 MVVM 设计模式。它是在开发基于XAML的UI应用程序时推荐使用的模式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句