async public void Content_DragDrop(DragEventArgs e, IUserData userdata) { if (_fdb == null) { return; } bool schemaOnly = false; if (userdata != null && userdata.GetUserData("gView.Framework.UI.BaseTools.PasteSchema") != null && userdata.GetUserData("gView.Framework.UI.BaseTools.PasteSchema").Equals(true)) { schemaOnly = true; } if (e.Data.GetDataPresent(DataFormats.FileDrop)) { } else { foreach (string format in e.Data.GetFormats()) { object ob = e.Data.GetData(format); if (ob is IEnumerable <IExplorerObjectSerialization> ) { ExplorerObjectManager exObjectManager = new ExplorerObjectManager(); List <IExplorerObject> exObjects = new List <IExplorerObject>(await exObjectManager.DeserializeExplorerObject((IEnumerable <IExplorerObjectSerialization>)ob)); if (exObjects == null) { return; } foreach (IExplorerObject exObject in ListOperations <IExplorerObject> .Clone(exObjects)) { IFeatureClass fc = await exObject?.GetInstanceAsync() as IFeatureClass; if (fc == null) { continue; } if (fc.Dataset != null && fc.Dataset.DatasetName == _dsname && _fdb != null && fc.Dataset.Database is AccessFDB && ((AccessFDB)fc.Dataset.Database)._conn.ConnectionString.ToLower() == _fdb._conn.ConnectionString.ToLower()) { exObjects.Remove(exObject); } } if (exObjects.Count == 0) { return; } FormFeatureclassCopy dlg = await FormFeatureclassCopy.Create(exObjects, _dataset); dlg.SchemaOnly = schemaOnly; if (dlg.ShowDialog() != DialogResult.OK) { continue; } foreach (FeatureClassListViewItem fcItem in dlg.FeatureClassItems) { await ImportDatasetObject(fcItem, schemaOnly); } /* * foreach (IExplorerObject exObject in exObjects) * { * ImportDatasetObject(exObject.Object); * } * */ exObjectManager.Dispose(); // alle ExplorerObjects wieder löschen... } } } await _dataset.RefreshClasses(); await this.Refresh(); }