public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { switch (value) { case IFilesystemEntry filesystemEntry: if (filesystemEntry.IsDirectory) { return(IconManager.FindIconForFolder(parameter as string == "large", false)); } var isDDS = FileTypeChecker.IsExtensionDDS(filesystemEntry); if (isDDS) { return(IconManager.FindIconForFilename("file.dds", parameter as string == "large")); } //todo known types //menuItem.File.Filename // fallback return(IconManager.FindIconForFilename(filesystemEntry.Name, parameter as string == "large")); default: return(IconManager.FindIconForFilename("empty_file", parameter as string == "large")); // return empty file } }