首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#/AvaloniaUI - OpenFolderDialog

C#/AvaloniaUI - OpenFolderDialog
EN

Stack Overflow用户
提问于 2020-03-11 19:38:33
回答 1查看 1.4K关注 0票数 3

我正在使用AvaloniaUI,我正在尝试实现:http://avaloniaui.net/api/Avalonia.Controls/OpenFolderDialog/

我想要实现的是,当我按下一个按钮,它触发openFold显示一个对话框,让我选择一个目录。一旦我选择了一个目录,我想要将它的路径存储在var result中。

这是我的代码:

代码语言:javascript
运行
复制
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,它也会显示一个选择目录对话框。我做得对吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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);

还是我误解了你的问题?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60643375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档