1

「ダイアログはユーザーが開始する必要があります」というエラーが表示されます。

それを解決する方法はありますか?

ありがとうございました!

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;
        }   
4

1 に答える 1

3

このエラーは、ユーザーがこのダイアログを開始する必要があることを意味します。したがって、このメソッドは、ユーザーのクリック イベントまたは別のユーザーが開始したイベントからのみ呼び出すことができます。

于 2012-07-11T17:39:30.997 に答える