我有一个表单MainWindow,它包含一个列表框,由另一个表单/类Task_details填充,但拒绝在mainWindow的列表框中添加任何内容。我尝试将列表框放在Task_details中,并且它已正常填充。我的目标是在text_details类上使用我的方法来填充MainWindow分部类中的列表框。我还能做些什么来实现这一目标?
public partial class MainWindow : Window {
private bool isTextChanged = false;
Task_details details;
public MainWindow() {
InitializeComponent();
}
private void taskMenuItem_Click(object sender, RoutedEventArgs e) {
details = new Task_details();
details.Owner = this;
details.Show();
}
在task_details上,这是我的代码
public partial class Task_details : Window {
MainWindow mW;
private bool isTextChanged = false;
public Task_details() {
mW = new MainWindow();
InitializeComponent();
}
private void addTaskButton_Click(object sender, RoutedEventArgs e) {
String tName = taskNameTextBox.Text;
String tDesc = descriptionTextBox.Text;
Task task = new Task(tName, tDesc);
mW.taskListBox.Items.Add(task);
}
答案 0 :(得分:2)
您正在Task_details构造函数中创建一个新的MainWindow,而不是传入现有的MainWindow。 mW不是指您认为它所引用的窗口,而是指您在第二个窗口中创建的隐藏窗口。
您可以通过以下方式轻松解决此问题:
public Task_details(MainWindow mw) {
this.mW = mW;
InitializeComponent();
}
当您在MainWindow中创建Task_details窗口时:
details = new Task_details(this);