fix: simplify nullable check in pathpicker.
This commit is contained in:
@@ -204,10 +204,10 @@ public class PathPicker : TemplatedControl
|
|||||||
nameof(FilePickerFileTypes.ImagePng) => FilePickerFileTypes.ImagePng,
|
nameof(FilePickerFileTypes.ImagePng) => FilePickerFileTypes.ImagePng,
|
||||||
nameof(FilePickerFileTypes.ImageWebp) => FilePickerFileTypes.ImageWebp,
|
nameof(FilePickerFileTypes.ImageWebp) => FilePickerFileTypes.ImageWebp,
|
||||||
nameof(FilePickerFileTypes.TextPlain) => FilePickerFileTypes.TextPlain,
|
nameof(FilePickerFileTypes.TextPlain) => FilePickerFileTypes.TextPlain,
|
||||||
_ => parse()
|
_ => Parse()
|
||||||
};
|
};
|
||||||
|
|
||||||
FilePickerFileType parse()
|
FilePickerFileType Parse()
|
||||||
{
|
{
|
||||||
var list = str.Split(',');
|
var list = str.Split(',');
|
||||||
return new FilePickerFileType(list.First())
|
return new FilePickerFileType(list.First())
|
||||||
@@ -248,7 +248,7 @@ public class PathPicker : TemplatedControl
|
|||||||
FileTypeFilter = ParseFileTypes(FileFilter)
|
FileTypeFilter = ParseFileTypes(FileFilter)
|
||||||
};
|
};
|
||||||
var resFiles = await storageProvider.OpenFilePickerAsync(filePickerOpenOptions);
|
var resFiles = await storageProvider.OpenFilePickerAsync(filePickerOpenOptions);
|
||||||
UpdateSelectedPaths(resFiles.Select(x => x.TryGetLocalPath()).ToArray()!);
|
UpdateSelectedPaths(resFiles.Select(x => x.TryGetLocalPath()).ToArray());
|
||||||
break;
|
break;
|
||||||
case UsePickerTypes.SaveFile:
|
case UsePickerTypes.SaveFile:
|
||||||
FilePickerSaveOptions filePickerSaveOptions = new()
|
FilePickerSaveOptions filePickerSaveOptions = new()
|
||||||
@@ -263,9 +263,7 @@ public class PathPicker : TemplatedControl
|
|||||||
|
|
||||||
var path = (await storageProvider.SaveFilePickerAsync(filePickerSaveOptions))
|
var path = (await storageProvider.SaveFilePickerAsync(filePickerSaveOptions))
|
||||||
?.TryGetLocalPath();
|
?.TryGetLocalPath();
|
||||||
UpdateSelectedPaths(string.IsNullOrEmpty(path)
|
UpdateSelectedPaths([path]);
|
||||||
? Array.Empty<string>()
|
|
||||||
: [path]);
|
|
||||||
break;
|
break;
|
||||||
case UsePickerTypes.OpenFolder:
|
case UsePickerTypes.OpenFolder:
|
||||||
FolderPickerOpenOptions folderPickerOpenOptions = new()
|
FolderPickerOpenOptions folderPickerOpenOptions = new()
|
||||||
@@ -277,7 +275,7 @@ public class PathPicker : TemplatedControl
|
|||||||
SuggestedFileName = SuggestedFileName
|
SuggestedFileName = SuggestedFileName
|
||||||
};
|
};
|
||||||
var resFolder = await storageProvider.OpenFolderPickerAsync(folderPickerOpenOptions);
|
var resFolder = await storageProvider.OpenFolderPickerAsync(folderPickerOpenOptions);
|
||||||
UpdateSelectedPaths(resFolder.Select(x => x.TryGetLocalPath()).ToArray()!);
|
UpdateSelectedPaths(resFolder.Select(x => x.TryGetLocalPath()).ToArray());
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new ArgumentOutOfRangeException();
|
throw new ArgumentOutOfRangeException();
|
||||||
@@ -298,9 +296,10 @@ public class PathPicker : TemplatedControl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UpdateSelectedPaths(IReadOnlyList<string> newList)
|
private void UpdateSelectedPaths(IReadOnlyList<string?> newList)
|
||||||
{
|
{
|
||||||
if (newList.Count != 0 || IsClearSelectionOnCancel && newList.Count == 0)
|
var nonNullList = newList.Where(x => x is not null).Select(x => x!).ToList();
|
||||||
SelectedPaths = newList;
|
if (nonNullList.Count != 0 || IsClearSelectionOnCancel && nonNullList.Count == 0)
|
||||||
|
SelectedPaths = nonNullList;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user