2012-05-08 2 views
2

Windows 8 Metro 앱 개발에 Visual Studio 11 베타를 사용하고 있는데 오류가 있습니다. 오류 :C#의 이벤트 핸들러 오류

Cannot implicitly convert type 
    'System.EventHandler<Windows.UI.Input.ManipulationStartedEventArgs>' to 
    'Windows.UI.Xaml.Input.ManipulationStartedEventHandler' 

내 코드입니다.

selectRectangle.ManipulationStarted += new EventHandler<ManipulationStartedEventArgs>(OnRectangleManipulationStarted); 
ellipseTL.ManipulationStarted += new EventHandler<ManipulationStartedEventArgs>(OnRectangleManipulationStarted); 
+0

더 이상 WPF가 아니며 잘못된 이벤트 처리기 유형입니다. 대리자 유형은 Metro의 ManipulationStartedEventHandler입니다. –

답변

2

은 아직 메트로을위한 VS 2012와 함께 일하지 않은,하지만 내가 이해에서, 지하철/.NET 4.5 네임 스페이스의 개편을 조금 않습니다, 또는 적어도 selectRectangle/ellipseTL.ManipulationStarted 이벤트가를 사용 다른 클래스. 이 경우 확실히 ManipulationStartedEventHandler이 아니며 EventHandler<>이 아닙니다.

selectRectangle.ManipulationStarted += new Windows.UI.Xaml.Input.ManipulationStartedEventHandler(OnRectangleManipulationStarted); 
ellipseTL.ManipulationStarted += new Windows.UI.Xaml.Input.ManipulationStartedEventHandler(OnRectangleManipulationStarted); 

를 또는 암시 적 이벤트 핸들러 구문을 사용합니다 :

대신이 시도

selectRectangle.ManipulationStarted += OnRectangleManipulationStarted; 
ellipseTL.ManipulationStarted += OnRectangleManipulationStarted; 

을하지만, 내가 말했듯이, 나는 아직 새 API와 함께 근무 한 적이없는, 그래서 이것은 단지입니다 내 경험에서 4.0으로 가장 추측.

EDIT : OnRectangleManipulationStarted 메서드의 서명을 ManipulationStartedEventHandler 서명과 일치하도록 변경해야 할 수도 있습니다.

+0

작동하지 않습니다. –

+0

OnRectangleManipulationStarted의 메서드 서명과 함께 코드 파일의 맨 위에있는 using 문을 게시하고 selectRectangle 및 ellipseTL 클래스를 나타낼 수 있습니까? –

+0

네, 맞았습니다. 정말로 고맙습니다. 선생님. 나는 잘못된 서명을 사용했다. –