2012-05-03 61 views
1

我有基於WPF開發的Windows應用程序,我在這裏會遇到奇怪的問題。 我必須選擇圖像,一旦它彈出像「」關鍵幀圖像被調整大小成功「的消息,但如果做兩次,它彈出兩次,但如果做3次,然後它彈出三次消息框彈出兩次 - 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

@傑米,你真棒,我只是在this.dialog.ShowSuccess(「關鍵幀圖像已成功調整大小」)添加此代碼; imageResizer.ResizeCompleted - = new ImageResizerService.ResizeCompletedHandler(imageResizer_ResizeCompleted); – Usher