我使用了此链接中的用户控件 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);