我正在将音乐播放列表从磁盘加载到 C# ListView 控件。我使用 ListViewGroups 来分隔专辑,播放列表中可以有多个专辑。
播放列表以以下文本格式保存:(我知道这不是最好的方法,但适用于本示例)
|album|name of album
track 1 fsdfsfasf.mp3
track 2 fdsgfgfdhhh.mp3
track 3 gfdgsdgsdfgs.mp3
当我将播放列表加载到 ListView 时,我测试字符串是否为“|album|” 从行的开头找到,并将该行用于组标题文本。下面的代码示例:
using (StreamReader reader = File.OpenText("playlist.txt"))
{
while (reader.Peek() >= 0)
{
result = reader.ReadLine();
if (result.Substring(0, 7) == "|album|")
{
ListViewGroup group = new ListViewGroup();
group.Header = result.Substring(7);
lstPlaylist.Groups.Add(group); // lstPlaylist is existing ListView control for playlist
}
else
{
ListViewItem item = new ListViewItem(result, 0, group);
lstPlaylist.Items.Add(item);
}
}
}
如果“|专辑|” 找到字符串,然后我创建新的 ListViewGroup。但是该组在 else 语句中是不可访问的(我无法将项目分配给组),因为它超出了范围。如何在 if 语句中创建新的 ListViewGroup 并在该 if 语句之外使用它?