如何在没有构造函数的情况下将数据绑定到用户控件



我使用了此链接中的用户控件 https://www.codeproject.com/articles/739902/how-to-easily-host-wpf-control-inside-windows-form我只能在构造函数中的此用户控件中加载数据,但我想从其他方法调用它,但我失败了有什么办法吗?结构是

public Getstarted()
{
   InitializeComponent();
   List<Employee2> employees = new List<Employee2>();
   try
   {
       con = new SqlConnection(cs.DBConn);
       con.Open();
       cmd = new SqlCommand("SELECT Participant.ParticipantName, MeetingParticipant.Title, Participant.ParticipantId FROM            MeetingParticipant INNER JOIN Participant ON MeetingParticipant.ParticipantId = Participant.ParticipantId INNER JOIN Meeting ON MeetingParticipant.MeetingId = Meeting.MeetingId where Meeting.Statuss='Open'", con);
       rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            while (rdr.Read() == true)
            {
                employees.Add(new Employee2() { Name = rdr[0].ToString(), Title = rdr[1].ToString(), Id = rdr[2].ToString()});
            }
            con.Close();
   }
   catch (Exception ex)
   {
       MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
   }
   this.comboBoxWithGrid_WinformsHost1.Employee2s = employees;
}

我已经在按钮事件上尝试过这个,但失败了

private void MyMethod()
{       
    List<Employee2> employees = new List<Employee2>();
    try
    {
       con = new SqlConnection(cs.DBConn);
       con.Open();
       cmd = new SqlCommand(" SELECT Participant.ParticipantName, MeetingParticipant.Title, 
       Participant.ParticipantId FROM            MeetingParticipant 
           INNER JOIN 
             Participant ON MeetingParticipant.ParticipantId = 
             Participant.ParticipantId INNER JOIN Meeting ON 
             MeetingParticipant.MeetingId = Meeting.MeetingId where 
             Meeting.Statuss='Open'", con);
      rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
      while (rdr.Read() == true)
      {
          employees.Add(new Employee2() { Name = rdr[0].ToString(), Title = rdr[1].ToString(), Id = rdr[2].ToString()});     
      }
      con.Close();
    }
    catch (Exception ex)
    {
       MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
        this.comboBoxWithGrid_WinformsHost1.Employee2s = employees;
}

这是我的第一个问题 在这里 我是这个领域的新手 如果缺少什么 请尝试了解我的局限性 谢谢。

这不是对我问题的直接回答,但我通过以下方式解决了我的问题使用此行

        this.comboBoxWithGrid_WinformsHost1.Employee2s.AddRange(employees);

最新更新