2017-04-06 5 views
0

이 링크의 사용자 정의 컨트롤을 사용했습니다. https://www.codeproject.com/articles/739902/how-to-easily-host-wpf-control-inside-windows-form 생성자에서이 사용자 정의 컨트롤의 데이터 만로드 할 수 있지만 다른 메서드에서 호출하려고하지만 실패 했습니까? 내가 버튼 이벤트에서이 작업을 시도했지만 실패했다데이터를 생성자없이 usercontrol에 바인딩하는 방법?

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

construcor은

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

이 여기 내 첫 번째 질문입니다 그리고 뭔가 내 제한 감사를 이해하려고 노력하십시오없는 경우, 나는이 분야에서 초보자입니다 당신.

+0

를 사용 으로 내 문제를 해결했다 "그것은 실패" . –

+0

오류 메시지가 표시되지 않았습니다. –

+0

그런 다음 일어날 일과 일어난 일의 차이점을 기억하십시오. –

답변

0

이 내 문제에 직접 대답은 아니지만 내가 어떤 오류 메시지 나 대신 말하는 오류의 설명을 제공 그것은 일반적으로 표준으로 간주되는이 라인

 this.comboBoxWithGrid_WinformsHost1.Employee2s.AddRange(employees);