This is a mirror of official site: http://jasper-net.blogspot.com/

Silverlight Exception: SaveFileDialog Dialogs must user-initiated

| Tuesday, August 10, 2010
נדרשתי ליצור כפתור ב-Silverlight שלחיצה עליו תבצע 2 פעולות:
1. "קבלת" נתונים מ-Web Service של MOSS
2. שמירה לתוך קובץ באמצעות SaveFileDialog

הוצג Exception עם פרטים SaveFileDialog Dialogs must user-initiated בתוך המתודה MOSS_WS_GetDataCompleted
לאחר הרצת הקוד הבא:

private SaveFileDialog dialog = new SaveFileDialog();
private string StringData = "";

try
{
  dialog.DefaultExt = ".txt";
  dialog.Filter = "Text Files|*.txt|All Files|*.*";
  dialog.FilterIndex = 1;
}
catch (Exception ex)
{
  tblError.Text = "Error SaveFileDialog: " + ex.Message;
}

void MOSS_WS_GetDataCompleted(object sender,
WebServiceReference.GetDataCompletedEventArgs e)
{
  string data = StringData;
  if (this.dialog.ShowDialog() == true)
  {
     using (System.IO.Stream stream = dialog.OpenFile())
     {
        using (System.IO.StreamWriter writer =
new System.IO.StreamWriter(stream))
        {
           writer.Write(data);
           writer.Close();
        }
        stream.Close();
     }
  }
}

הפיתרון
"לפצל" את הפעולה לשני כפתורים.
1. לחיצה על כפתור אחד תבצע את "קבלת" הנתונים בלבד לתוך המשתנה StringData.
2. הקוד אשר קיים במתודה MOSS_WS_GetDataCompleted יהיה בכפתור השני ויבצע את השמירה לתוך קובץ הטקסט (בדוגמא הספציפית הזו) .


Read more: Dudi Nissan's Blog

Posted via email from .NET Info

0 comments: