private void cmiExport_Click(object sender, EventArgs e) { if (lvDataviews.SelectedItems.Count > 0) { sfdExport.FileName = DateTime.Now.ToString("yyyy_MM_dd_"); if (lvDataviews.SelectedItems.Count == 1) { sfdExport.FileName += lvDataviews.SelectedItems[0].Text; } else { sfdExport.FileName += lvDataviews.SelectedItems.Count; } sfdExport.OverwritePrompt = true; sfdExport.SupportMultiDottedExtensions = true; if (DialogResult.OK == sfdExport.ShowDialog(this)) { var dvs = new List <string>(); var splash = new frmSplash(); foreach (ListViewItem lvi in lvDataviews.SelectedItems) { dvs.Add(lvi.Tag.ToString()); } splash.Show("Exporting " + dvs.Count + " dataview(s)...", false, this); processInBackground( (worker) => { var ds = AdminProxy.ExportDataViewDefinitions(dvs); BinaryFormatter bin = new BinaryFormatter(); using (StreamWriter sw = new StreamWriter(sfdExport.FileName)) { ds.RemotingFormat = SerializationFormat.Binary; bin.Serialize(sw.BaseStream, ds); } }, (worker2, e2) => { splash.ChangeText(getDisplayMember("export{working}", "Still working...")); }, (worker3, e3) => { splash.Close(); MainFormUpdateStatus(getDisplayMember("export{exported}", "Exported {0} dataview(s)", dvs.Count.ToString("###,##0")), true); }); } } }