我将 C# (WPF) 用于一个项目,在该项目中我将人员添加到要显示在第一个窗体 (MainWindow) 上的列表中;在 MainWindow 上单击一个按钮以打开一个新表单 (Window1),他们可以在其中添加有关要添加到列表中的人员的详细信息(姓名、年龄等),但我无法传递这些数据。这是我所拥有的:
public partial class MainWindow : Window
{
public List<Patients> newPatientList = new List<Patients>();
public MainWindow()
{
InitializeComponent();
}
private void button_Click(object sender, RoutedEventArgs e)
{
Window1 addPx = new Window1();
addPx.Show();
}
然后在 Window1 中,单击按钮时:
MainWindow newPxList = new MainWindow();
newPxList.newPatientList.Add(new Patients(lstname.Text, frstname.Text, age.Text,
rm.Text, "", status.SelectedItem.ToString()));
然后窗口关闭,但列表似乎没有在原始表单上更新。
在 Window1 中,您正在创建 的新实例MainWindow
,将其视为正在创建 的新的、空白的和隐藏的副本MainWindow
。因此,您的原始文件MainWindow
保持不变。
你需要做的是传递引用(让我们说链接)MainWindow
到Window1
为此,您需要进行以下操作:
make property Main
,在您的Window1
类中,并更改默认构造函数以获取MainWindow
作为参数的引用,如下所示:
public MainWindow Main { get; set; }
public Window1(MainWindow main)
{
InitializeComponent();
this.Main = main;
}
现在,您必须在显示时更改构造函数Window1
,如下所示:
Window1 addPx = new Window1(this);
addPx.Show();
在 中创建公共方法MainWindow
,如下所示:
public void AddNewPatient(string lastName, string FirstName, string age)
{
//add new ListItem here
}
并且,在Window1
需要时调用该方法,单击按钮,如下所示:
Main.AddNewPatient(lstname.Text, frstname.Text, age.Text /*etc */);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句