Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用第二种形式将项目添加到C#中不同类的列表框中_C#_Wpf_Listbox - Fatal编程技术网

使用第二种形式将项目添加到C#中不同类的列表框中

使用第二种形式将项目添加到C#中不同类的列表框中,c#,wpf,listbox,C#,Wpf,Listbox,我有一个表单主窗口,其中包含一个列表框,由另一个表单/类任务\u详细信息填充,但拒绝在主窗口的列表框中添加任何内容。我试着把列表框放在Task_details中,它被正常填充。我的目标是使用text_details类中的方法填充MainWindow部分类中的列表框。我还能做些什么来实现这一点 public partial class MainWindow : Window { private bool isTextChanged = false; Task_detail

我有一个表单主窗口,其中包含一个列表框,由另一个表单/类任务\u详细信息填充,但拒绝在主窗口的列表框中添加任何内容。我试着把列表框放在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();
    }
关于任务详细信息,这是我的代码

  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);
    } 

您正在Task_details构造函数中创建一个新的主窗口,而不是传入现有的主窗口。mW并不是指您认为它所指的窗口,而是指您在第二个窗口中创建的隐藏窗口

您可以通过执行以下操作轻松解决此问题:

public Task_details(MainWindow mw) {
   this.mW = mW;
   InitializeComponent();
}
在主窗口中创建任务详细信息窗口时:

details = new Task_details(this);

您可以创建一个主窗口实例,并在taskdetails中调用它。非常感谢。这件事我已经坚持了好几个小时了,现在我终于可以继续了。