2010-07-18 2 views
1

이렇게 코드에서 일부 단추가 생성되었습니다.코드 숨김 C# WPF의 단추 처리기

private void SideButton_Click(object sender, EventArgs e) 
    { 
     // Uhh 
     Console.WriteLine("The Button has been clicked."); 
     mainText.Text = infoLoader.games[0].id.ToString() + ", " + infoLoader.games[0].name + ": " + infoLoader.games[0].description; 
     MainLaunchBtn.Content = "Launch " + infoLoader.games[0].name; 
    } 

그리고 그것은 나에게 오류를주고 :

오류 1 '은 System.EventHandler'

'SideButton_Click'경기 대리인 없음 과부하이 같은 버튼 이벤트 처리 기능으로
if (infoLoader.categoriesLoaded) 
     { 
      sideBarButtons = new Button[infoLoader.categoriesLength]; 
      for (int i = 0; i < sideBarButtons.Length; i++) 
      { 
       sideBarButtons[i] = new Button(); 
       sideBarButtons[i].Content = infoLoader.categories[i].name; 
       Canvas.SetLeft(sideBarButtons[i], 30); 
       Canvas.SetTop(sideBarButtons[i], 110 + (40 * i)); 
       sideBarButtons[i].Click += new EventHandler(this.SideButton_Click); 
       leftSideBar.Children.Add(sideBarButtons[i]); 

      } 
     } 

저는 여기에 실종 된 내용에 대해 혼란스러워하며 도움을 얻을 수 있습니다. - 그것은 RoutedEventHandler있어

private void SideButton_Click(object sender, RoutedEventArgs e) 
    { 

    } 

and you can add the handler like this: 

sideBarButtons[i].Click += SideButton_Click; 

답변

2

(ButtonBase에서 상속) WPF의 Button.Click 이벤트 유형 EventHandler이 아닌 : 덕분에,

앤디

0

난 당신이 서명하는 방법을하려는 생각합니다. 난 당신이 얻고있는 정확한 오류 메시지에 대한 다소 놀랐어요,하지만 당신은 당신의 코드를 변경 할 수 있어야한다 : 당신의 기존 수

sideBarButtons[i].Click += this.SideButton_Click; 

위임 분산 : 더 간단하게

sideBarButtons[i].Click += new RoutedEventHandler(this.SideButton_Click); 

또는 두 번째 매개 변수가 RoutedEventArgs 대신 EventArgs 인 경우에도으로 변환되어야합니다.

using 지시어가 올바른지 확인해야합니다. WinForms 버튼 대신 진정으로 WPF 버튼을 만들었는지 확인하십시오.

+0

메소드 서명을 변경할 필요가 없습니다. (Object, EventArgs)를 취하는 메소드를 사용하여 'RoutedEventHandler'를 생성 할 수 있습니다. 틀림없이'RoutedEventArgs'에서 추가 정보를 얻지는 못하지만 컴파일되고 실행됩니다. –