У меня в приложении есть сетка данных, привязанная к коллекции, которая получает файлы от dragdrop. Используя фреймворк Gong.DragDrop, я могу перемещать выпадающие элементы.
Теперь я хочу перетаскивать элементы между двумя экземплярами одного и того же приложения, чтобы оба блока данных имели абсолютно одинаковые форматы типов данных.
Если я перетаскиваю файл из windows:
DataObject dataObject = new DataObject(dropInfo.Data); //dropInfo comes from Gang framework
string[] dataFormats = dataObject.GetFormats(true);
int numberOfDataFormats = dataFormats.Length;
Console.WriteLine(numberOfDataFormats);
Там написано, что у меня внутри 18 форматов данных. FileDrop является одним из них, поэтому я могу отфильтровать его, прежде чем разрешить Drop
var dragFileList = ((DataObject)dropInfo.Data).GetFileDropList().Cast<string>();
foreach (string drop in dragFileList) {var extension = Path.GetExtension(drop); }
dropInfo.Effects = dragFileList.Any(item => {var extension = Path.GetExtension(item);
return extension != null && extension.EqualsAnyOf(".mp3", ".wav", ".MP3", ".WAV", ".csm", ".xml");}) ? DragDropEffects.Copy : DragDropEffects.None;
. Случай, когда я перетаскиваю элемент сетки данных из приложения в другой экземпляр,
DataObject dataObject = new DataObject(dropInfo.Data); //dropInfo comes from Gang framework
string[] dataFormats = dataObject.GetFormats(true);
int numberOfDataFormats = dataFormats.Length;
Console.WriteLine(numberOfDataFormats);
Говорит, что доступен только 1 формат данных, называемый GongSolutions.Wpf.DragDrop. Но я понятия не имею, как извлечь информацию из этого dataFormat.
Я думал, что, поскольку оба набора данных точно равны, но в разных случаях оба могут совместно использовать один и тот же dataFormat, а затем совместно использовать один и тот же dropInfo.Data.
Спасибо.