DragDrop между сеткой данных в разных экземплярах одного приложения - PullRequest
0 голосов
/ 18 апреля 2020

У меня в приложении есть сетка данных, привязанная к коллекции, которая получает файлы от 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.

Спасибо.

...