WPF と C# を使用して、アップロードされたファイルをハイパーリンクとして表示し、ファイルごとに削除ボタンを表示して、不要な場合は一度に 1 つのファイルを削除できるようにする方法。テキストボックスにファイルを単なるテキストとして表示できます。さらに進む方法。誰でも私を助けてくれませんか.??
1 に答える
ファイルを列挙する必要があるので、 から始めます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 フレームワークにデフォルトの 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;
}
}
bool CanDelete(sting filename)
次に、に直接マップする実装と にマップSystem.IO.File.Exists(filename)
する実装を提供するだけvoid Delete(string filename)
で済みますSystem.IO.File.Delete(filename)
。