2012-05-03 4 views
1

WPF를 기반으로 개발 된 Windows 응용 프로그램이 있습니다. 여기에 이상한 문제가 있습니다. "키 프레임 이미지의 크기가 성공적으로 조정되었습니다."와 같은 메시지가 팝업되면 이미지를 선택해야합니다. 그러나 두 번 클릭하면 팝업이 두 번 나타나지만 세 번 수행하면 팝업이 세 번 나타납니다.메시지 상자가 두 번 팝업됩니다. - WPF

은 또는 계산하는 방법, 도움이 많이 apprciated이 문제를 해결하는 방법을 잘 모르겠습니다. 여기

private void imageResizer_ResizeCompleted(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e) 
    { 
     string test =e.ToString(); 
     ImageResizerResult result = (ImageResizerResult)e.Result; 

     this.aggregator.GetEvent<ImageResizeCompletedEvent>().Publish(result.IsSuccessful); 

      if (result.IsSuccessful) 
      { 

       this.dialog.ShowSuccess("Keyframe Image was resized successfully"); 
      } 

     } 

이 메시지

 public void ShowSuccess(string message) 
    { 

     MessageBox.Show(message, 
         "Success", 
         MessageBoxButton.OK, 
         MessageBoxImage.Information); 
    } 
에게 전달하는 내 서비스를 호출 내보기 모델 클래스 파일입니다

여기에 무엇이 빠졌는 지 알 수 있습니다. 사전에 감사드립니다.

+0

imageResizer_ResizeCompleted에 대한 이벤트 수신기를 어디에 연결합니까? 이 와이어가 한 번 이상 발사 될 가능성이 있습니까? –

답변

2

나는 이미지를 선택할 때마다 + = 연산자를 사용하여 해당 이미지 (또는 이미지 컨트롤러)에 이벤트를 추가한다고 생각합니다. 그런 다음 응용 프로그램의 어딘가에서 ResizeComplete 이벤트가 발생합니다.

그러나 이전 이미지에서 이벤트를 분리하지 않으므로 모든 이미지가 함께 해고됩니다. 코드의 어딘가에 - = 연산자를 사용해야합니다 (ResizeComplete 메서드 내부).

+0

@ Jamie, 대단하다.이 코드를 this.dialog.ShowSuccess ("키 프레임 이미지의 크기가 성공적으로 조정되었습니다")에 추가하기 만하면됩니다. imageResizer.ResizeCompleted - = 새 ImageResizerService.ResizeCompletedHandler (imageResizer_ResizeCompleted); – Usher

관련 문제