public static IEnumerable <IFile> GetDroppedFiles(this System.Windows.IDataObject item, Func <string, IFile> fileFromDiskPath) { var fileNames = (item.GetData(DataFormats.FileDrop) as string[]) ?? new string[0]; return(fileNames.Length > 0 ? fileNames.Select(fileFromDiskPath) : item.GetFileDescriptorFiles()); }