【发布时间】:2014-06-23 18:01:25
【问题描述】:
我正在将音乐播放列表从磁盘加载到 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 语句之外使用它?
【问题讨论】:
-
在外面声明变量。
-
或者使用一个字段,如果你打算在其他方法中使用它。
标签: c# winforms scope listviewgroup