Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Dropbox API在WPF中构建explorer树视图_C#_Wpf_Xaml_Dropbox - Fatal编程技术网

C# 使用Dropbox API在WPF中构建explorer树视图

C# 使用Dropbox API在WPF中构建explorer树视图,c#,wpf,xaml,dropbox,C#,Wpf,Xaml,Dropbox,嘿,我很难让我的treeview按照我想要的方式工作,目前它只是一个没有层次结构数据模板的treeview,这并不是我真正遇到的问题,但我不确定从哪里开始,让它展开文件夹,然后显示其中的文件/文件夹,等等。 目前,我的树视图只显示了整个文件列表 我正在visual studio 2019中使用Dropbox.API版本4.10 我的项目是一个.netcore 3.1桌面应用程序 这是我的获取文件方法 public async Task<ListFolderResult> GetFil

嘿,我很难让我的treeview按照我想要的方式工作,目前它只是一个没有层次结构数据模板的treeview,这并不是我真正遇到的问题,但我不确定从哪里开始,让它展开文件夹,然后显示其中的文件/文件夹,等等。 目前,我的树视图只显示了整个文件列表

我正在visual studio 2019中使用Dropbox.API版本4.10

我的项目是一个.netcore 3.1桌面应用程序

这是我的获取文件方法

public async Task<ListFolderResult> GetFiles(string path)
{
    using(var dropbox = new DropboxClient(_token))
    {
        var list = await dropbox.Files.ListFolderAsync(path, true);
        while (list.HasMore)
        {
            list = await dropbox.Files.ListFolderContinueAsync(list.Cursor);
        }
        return list;
    }
}
public异步任务GetFiles(字符串路径)
{
使用(var-dropbox=new-DropboxClient(_令牌))
{
var list=wait dropbox.Files.ListFolderAsync(路径,true);
while(list.HasMore)
{
list=wait dropbox.Files.ListFolderContinueAsync(list.Cursor);
}
退货清单;
}
}
这是树视图的xaml

<TreeView Margin="5" ItemsSource="{Binding Files.Entries}">
    <TreeView.ItemTemplate>
        <DataTemplate>
            <TextBlock>
                <TextBlock.Text>
                    <MultiBinding StringFormat="{}{0}: {1}">
                        <Binding Path="Name"/>
                        <Binding Path="PathDisplay"/>
                     </MultiBinding>
                </TextBlock.Text>
            </TextBlock>
        </DataTemplate>
    </TreeView.ItemTemplate>
</TreeView>

这里是我的视图模型

public class ManageDropboxViewModel : ViewModelBase
{
    private ListFolderResult _files;
    private readonly DropboxService _dropboxService;

    public ListFolderResult Files
    {
        get => _files;
        set => Set(ref _files, value, "Files");
    }

    public async Task LoadDropbox()
    {
        Files = await _dropboxService.GetFiles("");
    }

    public ManageDropboxViewModel()
    {
        _dropboxService = new DropboxService();

        var task = Task.Run((Func<Task>)LoadDropbox);
        task.Wait();
    }
}
公共类ManageDropboxViewModel:ViewModelBase
{
私有ListFolderResult_文件;
专用只读DropboxService\u DropboxService;
公共ListFolderResult文件
{
获取=>\u文件;
set=>set(参考文件,值,“文件”);
}
公共异步任务LoadDropbox()
{
Files=wait_dropboxService.GetFiles(“”);
}
公共管理器DropboxViewModel()
{
_dropboxService=新的dropboxService();
var task=task.Run((Func)LoadDropbox);
task.Wait();
}
}

这是可行的,但我将所有文件/文件夹都放在一个列表中。结果,我想要的是以一种我可以将其拆分的方式进行格式化,以便在树视图中显示我想要的格式


非常感谢您提供的任何帮助,因为我已经尝试了一段时间,试图获得某种结果。

您可能希望将目录名设置为一个按钮。在click handler中,使用目录名调用LoadDropBox,然后将其传递给GetFiles。