如何以Windows窗体中的Gridview以外的方式显示对象列表

时间:2014-07-15 07:35:53

标签: c# winforms

我是C#的新手,在C和C ++中完成了大部分编程。

我需要显示一个对象列表。我可以将它们保存为ObservableCollection或BindingList或任何列表类型,但我不想将它们绑定到GridView。我的代码如下:

public class Item
{
   public string Name { get; set; }
   public int Price { get; set; }
}

我希望在小组框中显示带有Name标签和Price按钮的类,并根据源列表中的更新更新它们。我该怎么做才能接近这个?

1 个答案:

答案 0 :(得分:0)

您可能需要查看FlowLayoutPanel控件。然后,您可以动态构建GroupBox es并将其添加到Controls集合中。要动态地构建这样的东西可能有点困难,但它绝对可行。

这不是格式化的。但它显示了这个想法。

FlowLayoutPanel flowLayoutPanel = ...; // define this in the designer

foreach(var v in items)
{
    GroupBox gb = new GroupBox();
    gb.Text = "Item";

    Label label = new Label();
    label.Text = v.Name;
    gb.Controls.Add(label);

    Button btn = new Button();
    btn.Text = v.Price.ToString();
    gb.Controls.Add(btn);

    flowLayoutPanel.Controls.Add(gb);
}