メディアプレーヤーのプレイリストとしてリストボックスを作成します。なぜ、同じファイルをlistboxで無視するのはなぜですか?
しかし、同じファイルを無視すると同時に2回追加されます。
リストボックスに同じファイルの追加(2回以上)を同時に行う方法を教えてください。
は私のコードを参照してください:
XAML:
<ListBox x:Name="listbox4" Drop="listbox4_Drop" </ListBox>
<Button x:Name="load" Content="Load" Width="76" Click="load_Click" />
Xaml.cs:
private Dictionary<string, string> fileDictionary = new Dictionary<string, string>();
private void load_Click(object sender, RoutedEventArgs e)
{
Microsoft.Win32.OpenFileDialog ofd = new Microsoft.Win32.OpenFileDialog();
ofd.DefaultExt = ".mp3";
ofd.Filter = "All|*.*";
ofd.Multiselect = true;
Nullable<bool> result = ofd.ShowDialog();
if (result == true)
{
for (int i = 0; i < ofd.FileNames.Length; i++)
{
var filePath = ofd.FileNames[i];
var fileName = System.IO.Path.GetFileName(filePath);
fileDictionary.Add(fileName, filePath);
listbox4.Items.Add(fileName);
listbox4.SelectedItem = fileName;
}
}
}
private void listbox4_Drop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
string[] droppedFilePaths =
e.Data.GetData(DataFormats.FileDrop, true) as string[];
foreach (string droppedFilePath in droppedFilePaths)
{
var filePath = droppedFilePath;
var fileName = System.IO.Path.GetFileName(filePath);
fileDictionary.Add(fileName, filePath);
listbox4.Items.Add(fileName);
listbox4.SelectedItem = fileName;
}
}
}
私を助けてください。
同じファイルを開いたり削除したりすると無視され、エラーが表示されます。
それ以外の場合は問題ありません。この文を示す
エラー:
fileDictionary.Add(fileName, filePath);
誰
あなたは実際に辞書が何であるか知っていますか? ;-)多分あなたは見てみるべきです。 – kassi
「エラー」には、文字通り何が間違っているのかが記されています。「同じキーを持つ要素がすでに辞書に存在しています...」 – Joe