我试图在我的 ListView 控件中显示组,即使我可以在设计器 View 中手动添加它们,但这对我没有好处,因为我需要动态添加项目和组运行时,我不可能知道在运行时将添加哪些组。
我在网上搜索过,令我惊讶的是,我能找到的信息很少(这很有意义)。我能找到的唯一看起来像是为我想做的事情而制作的示例代码来 self 用 Visual Studio 下载的离线文档,该代码示例有 18 个编译时错误和 2 个主要入口点!
那么,我们如何在运行时动态地将组添加到 ListView 控件,然后将项目添加到列表。
所以您对我想要完成的事情有一个很好的了解,我在下面附上了一张图片:
最佳答案
执行此操作的一种方法是将 ListViewGroup 添加到您的 ListView。然后在将项目添加到 ListView 时,添加一个新的 ListViewItem 并指定组。
public class Form1 {
private ListViewGroup categoryGroup = new ListViewGroup("Categories", HorizontalAlignment.Left);
private ListViewGroup movieGroup = new ListViewGroup("Movies", HorizontalAlignment.Left);
private ListViewGroup castGroup = new ListViewGroup("Cast", HorizontalAlignment.Left);
private void Form1_Load(object sender, EventArgs e)
{
ListView1.BeginUpdate();
ListView1.Groups.Add(categoryGroup);
ListView1.Groups.Add(movieGroup);
ListView1.Groups.Add(castGroup);
ListView1.EndUpdate();
}
private void Button1_Click(object sender, EventArgs e)
{
ListView1.BeginUpdate();
Category.GetCategories().ForEach(x => ListView1.Items.Add(new ListViewItem(x.Name, categoryGroup)));
Movie.GetMovies().ForEach(x => ListView1.Items.Add(new ListViewItem(x.Name, movieGroup)));
Cast.GetCast().ForEach(x => ListView1.Items.Add(new ListViewItem(x.Names, castGroup)));
ListView1.EndUpdate();
}
}
我确信对此有一个更优雅的解决方案,但这应该给出一个关于如何将项目添加到各个组的不错的想法。
关于c# - 如何将组添加到 ListView,然后将项目添加到组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25271340/