2012-07-11 19 views
0

我得到EN“”对话框必须为用户启动”错误。对话框必须是用户启动的问题和异步。请求

任何线索怎么可能解决?

谢谢!

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

但是我得到的数据是异步的我怎么解决它然后呢 – 2012-07-11 17:40:19

+1

典型的解决方案是弹出消息说你有需要保存的数据并有一个按钮供他们保存/取消 – 2012-07-11 17:41:38

+0

所以我显示弹出消息,然后获取数据异步。并且只有在显示对话窗口之后? – 2012-07-11 17:44:22

相关问题