我正在使用AvaloniaUI,我正在尝试实现:http://avaloniaui.net/api/Avalonia.Controls/OpenFolderDialog/
我想要实现的是,当我按下一个按钮,它触发openFold显示一个对话框,让我选择一个目录。一旦我选择了一个目录,我想要将它的路径存储在var result中。
这是我的代码:
public async Task openFold()
{
var dialog = new OpenFolderDialog();
var result = await dialog.ShowAsync();
if (result != null)
{
await openFold(result);
}
Trace.WriteLine("DIR IS: " + result);
}但是,我不知道如何将当前的主窗口传递给ShowAsync。
我不确定即使我将当前窗口传递给ShowAsync,它也会显示一个选择目录对话框。我做得对吗?
发布于 2020-03-12 10:02:46
我刚刚检查了一个运行您的代码的AvaloniaUI应用程序(除了await openFold(result),因为您没有提供该方法的实现)。
尽管如此,所有的工作都很完美,我打开了文件夹选择窗口,我可以选择文件夹,它在result中返回。
它既可以使用给定的window参数,也可以不使用,因为它是可选的。
如果openFold()方法是在MainWindow类中定义的,则只需运行
var result = await dialog.ShowAsync(this);
如果要将该方法放置在其他地方,请为主窗口创建一个静态访问器变量:
public static MainWindow Instance;
在构造函数中分配它:
Instance = this;
并通过以下方式调用您的文件夹选择窗口:
var result = await dialog.ShowAsync(MainWindow.Instance);
还是我误解了你的问题?
https://stackoverflow.com/questions/60643375
复制相似问题