2011-01-21 6 views
0

두 개의 콤보 상자 (드롭 다운 목록 스타일)가있는 Windows 양식 응용 프로그램이 있습니다. 첫 번째 콤보 상자과 같이, AppTable 객체의 목록에서 데이터를 가져옵니다다른 드롭 다운 목록에서 선택한 항목이 변경되면 드롭 다운 목록에서 선택한 항목을 변경해야합니다.

this.cbxSelectName.SelectedIndexChanged +=new EventHandler(cbxSelectName_SelectedIndexChanged); 

그리고 마지막으로 :이 드롭 다운에서 선택한 항목이 변경되는 경우에 대한 트리거를 설정 한

foreach (AppTable table in appTableList) 
      cbxSelectName.Items.Add(table.App); 

, 여기 트리거가 호출하는 메소드의 정의가 있습니다. 선택한 항목이 변경되면 tbxNewWikiWord 텍스트 상자의 값이 변경됩니다.

class AppTable 
{ 
    public string App { get; set; } 
    public string Type { get; set; } 
    public string WikiWord { get; set; } 

} 

나는 실종 뭔가를 :

private void cbxSelectName_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     foreach (AppTable table in appTableList) 
     { 
      if (table.App == cbxSelectName.SelectedItem.ToString()) 
      { 
       this.tbxNewWikiWord.Text = table.WikiWord; 
       this.cbxUpdateAppType.SelectedItem = table.Type; 
       break; 
      } 
     } 

    } 

이 AppTable는 모습입니다 : 그러나 동일한 두 번째 드롭 다운 목록 (cbxUpdateAppType)에서 발생하지 않습니다?

+1

'cbxUpdateAppType'을'table.Type'에 나타나는 내용으로 채우고 있습니까? 'cbxUpdateAppType'을 채우는 코드를 게시하십시오. – shahkalpesh

+0

table.Type에는 Service, Task 또는 Application의 세 가지 값 중 하나를 저장할 수 있습니다. 그러나이 값을 사용하여 cbxUpdateAppType을 수동으로 채 웁니다. 루프에서 table.Type을 채우면 같은 값을 여러 번 가져옵니다. – xbonez

답변

0

AppTable 개체에서 cbxUpdateAppType에 값을 추가하면 해결됩니다. 왜 두 경우 모두 문자열을 추가했는지 모르겠습니다.

중복 된 항목이 있는지 확인할 필요가있어서 드롭 다운 상자에 같은 값의 인스턴스가 여러 개있는 것은 아닙니다.

foreach (AppTable table in appTableList) 
     { 
      if (!cbxUpdateAppType.Items.Contains(table.Type)) 
       cbxUpdateAppType.Items.Add(table.Type); 
     } 
관련 문제