使用WPF&;C#,如何将上传的文件显示为超链接,每个文件都有一个删除按钮

本文关键字:文件 超链接 显示 按钮 删除 有一个 amp WPF 使用 | 更新日期: 2023-09-27 18:27:00

使用WPF&C#,如何将上传的文件显示为超链接,为每个文件提供一个删除按钮,这样我们就可以在不需要的情况下一次删除一个文件。我可以在文本框中将文件显示为纯文本。如何继续。有人能帮我吗。??

使用WPF&;C#,如何将上传的文件显示为超链接,每个文件都有一个删除按钮

您需要枚举文件,所以从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,该命令希望向它传递一个pararmeter,该参数与链接中显示的文本相同。我会选择这个,而不是尝试使用Clicked,因为你得到了文件名。

如何实现Command取决于您,以及在您想要使用的MVVM框架中是否有默认的Command实现。如果你没有使用,那么你可以使用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;
        }
    }

然后,您只需要为直接映射到System.IO.File.Exists(filename)bool CanDelete(sting filename)和映射到System.IO.File.Delete(filename)void Delete(string filename)提供实现。