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