【发布时间】:2021-05-16 22:39:47
【问题描述】:
我对@987654323@ 和按钮处理程序感到困惑。我在视频教程中听说使用async void 是不明智的。我已经查看了这些问题:
在许多答案中,它确实使用了这种语法。因此我的困惑。 ????
这是我的处理程序:
async private void InstallStyleButton_Clicked(object sender, EventArgs e)
{
var customFileType =
new FilePickerFileType(new Dictionary<DevicePlatform, IEnumerable<string>>
{
{DevicePlatform.macOS, new[] {"xsl"} }
});
var pickResult = await FilePicker.PickAsync(new PickOptions
{
FileTypes = customFileType,
PickerTitle = "Select template to install"
});
if(pickResult != null)
{
// Build target path
string targetFile = Path.Combine("/Users/Shared/VisitsRota.MacOS/Styles", pickResult.FileName);
// OK to install?
if(!File.Exists(targetFile))
{
// Install
File.Copy(pickResult.FullPath, targetFile);
// Add it
StylesPicker.ItemsSource.Add(pickResult.FileName);
// Select it
StylesPicker.SelectedItem = pickResult.FileName;
}
}
}
我意识到硬编码文件夹路径不是一个好主意,我最终会解决这个问题。除此之外,当我尝试它时,我的处理程序似乎在我的开发 MacBook Pro 上运行良好。
我可以将async void 与按钮处理程序一起使用吗?如果没有,我的处理程序应该如何调整?
【问题讨论】:
标签: macos xamarin.forms xamarin.essentials