2012-07-11 2 views
0

나는 "대화 상자는 사용자가 시작해야합니다" "엉 얻을하는 요청 오류입니다.대화 상자는 사용자가 시작한 문제와 비동기식이어야합니다.

가 해결 될 수있는 방법을 어떤 단서?

감사합니다!

private void ExportDataToCSV() 
     { 
      string separator = GetSeparator(); 

      LoadClientContentItemStatistics(); // async. request of MVVM Light Toolkit 

      foreach (var item in this._view) 
      { 
       sb.AppendLine("\"" + item.Player.PlayerGroup.Name + "\"" + separator + "\"" + item.Player.Name + "\"" + separator + "\"" + item.ClientContentItem.Name + "\"" + separator + "\"" + item.TotalTime.ToString() + "\"" + separator + "\"" + item.TotalQuantity.ToString() + "\"" + separator + Environment.NewLine); 
      } 
      SaveFileDialog sfd = new SaveFileDialog() 
      { 
       DefaultExt = "csv", 
       Filter = "CSV Files (*.csv)|*.csv|All files (*.*)|*.*", 
       FilterIndex = 1 
      }; 
      if (sfd.ShowDialog() == true) // "Dialogs must be user-initiated" ERROR 
      { 
       using (Stream stream = sfd.OpenFile()) 
       { 
        using (StreamWriter writer = new StreamWriter(stream)) 
        { 
         writer.Write(sb.ToString()); 
         writer.Close(); 
        } 
        stream.Close(); 
       } 
      } 

      IsExport = true; 
     } 

답변

3

이 오류는 그것이 말하는 정확히 무엇을 의미 : 사용자가이 대화 상자를 시작해야하므로 사용자 클릭 이벤트 또는 다른 사용자 시작 이벤트에서만이 메서드를 호출 할 수 있습니다.

+0

데이터를 비동기 적으로 가져옵니다. 어떻게 해결할 수 있습니까? –

+1

일반적인 해결 방법은 다음과 같습니다. 팝업창에 당신이 저장해야하는 데이터가 있고 그 버튼에 저장/취소 버튼이 있다는 메시지가 나타납니다. –

+0

그러면 팝업 메시지가 나타나고 데이터 비동기가 나타납니다. 그리고 그 쇼 대화 창 후에 만? –

관련 문제