-4

使用 WPF 和 C#,如何将上传的文件显示为超链接,为每个文件提供一个删除按钮,以便我们可以在不需要时一次删除一个文件。我能够在文本框中将文件显示为纯文本。如何进一步进行。有人可以帮帮我吗??

4

1 回答 1

2

那么你将需要枚举文件,所以从IEnumerable<string> System.IO.Directory.EnumerateFiles(string path).

这当然需要暴露给视图,以便您可以为每个项目创建 UI。这是作为列表完成的

<ListBox ItemsSource="{Binding ListOfFiles}">
  <ListBox.ItemTemplate>
    <DataTemplate>

要创建超链接,您只需在文本块中使用超链接,例如

 <TextBlock>
   <Hyperlink Command="{Binding DeleteCommand}" CommandParameter="{Binding}" Text="{Binding}" />
 </TextBlock>

您会注意到我正在绑定到一个 DeleteCommand,它希望有一个参数传递给它,该参数与链接中显示的文本相同。Clicked因为你得到了文件名,所以我会选择这个而不是尝试用 a 来做。

如何实现Command取决于您,以及您想要使用的任何 MVVM 框架中是否有默认的命令实现。如果您没有使用,那么您可以使用Josh Smith 的原始 MVVM 文章中的 RelayCommand

   RelayCommand _deleteCommand;
    public ICommand DeleteCommand
    {
        get
        {
            if (_deleteCommand == null)
            {
                _deleteCommand = new RelayCommand(
                     param => this.Delete(param), 
                     param => this.CanDelete(param));
            }
            return _deleteCommand;
        }
    }

然后,您只需提供bool CanDelete(sting filename)哪些直接映射到System.IO.File.Exists(filename)以及void Delete(string filename)哪些映射到 的实现System.IO.File.Delete(filename)

于 2013-08-08T06:38:46.587 回答