当我要使列表框列出一个项目时,在文件名之前显示“ system.windows.controls.listboxitem”
我尝试使用Path.GetFileName,但无法正常工作
private void Button1_Click(object sender, EventArgs e)
{
string[] files = Directory.GetFiles(@"C:\media-directory", "*.mp3", SearchOption.AllDirectories);
foreach (string f in files)
{
string entry = Path.GetFileName(f);
var item = new ListBoxItem() { Content = entry, Tag = f };
listBox1.Items.Add(item);
}
}
private void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
var selectedItem = listBox1.SelectedItem as ListBoxItem;
string path = selectedItem.Tag.ToString();
mediaplayer.URL = path;
}
我希望输出只是文件名!
答案 0 :(得分:1)
您应该为item对象定义自己的类,并覆盖ToString()
函数。
根据{{1}}函数的返回值,您的项目将显示在ListBox
中。
ToString()
添加新项目时,请使用:
public class PathItem
{
public string Path { get; set; }
public override string ToString()
{
return Path;
}
}
为了获得选择:
listBox1.Items.Add(new PathItem() { Path = Path.GetFileName(f) });