0

我有以下课程:

public class Order
{
public string OrderName { get; set; }
public List<Parts> PartsList { get; set; }
}

public class Parts
{
public string PartName { get; set; }
public double PartQuantity { get; set; }
}

在我的代码中,我创建了一个Order对象列表

List<Order> myOrders;

我想以某种方式向用户显示所有这些,比如使用元素的堆栈面板,其中第一个是要显示的 TextBox,OrderName第二个是Datagrid显示部件列表?

老实说,我正在尝试许多不同的事情(我对使用哪种类型的控件没有要求),但我永远无法PartsList正确显示(要么我什么都没有,要么我得到“ Collection”向用户显示。

我们的目标是看到这样的东西:

Order1    Part1    7
          Part2    12
Order2    Part1    100
          Part2    1
          Part3    58

或者无论如何,标题可以是任何东西,老实说,我对许多建议持开放态度。

任何帮助将非常感激。

4

1 回答 1

2

TreeView工作吗?它看起来像这样:

- Order 1
  * Part A (100)
  * Part B (200)
+ Order 2
+ Order 3
- Order 4
  * Part C (300)
  * Part D (400)
  * Part E (500)
+ Order 5
...

你可以这样做:

void AddOrderToTree(Order order)
{
  var orderNode = treeView.Nodes.Add(order);

  foreach(var part in order.Parts)
    orderNode.Nodes.Add(part);
}

但是,是的,正如所指出的,我会使用这样的属性:

public class Part
{
  public virtual string Name { get; set; }
  public virtual double Quantity { get; set; }

  public override string ToString()
  {
    return string.Format("{0}: {1}", this.Name, this.Quantity.ToString());
  }
}

public class Order
{
  public virtual string Name { get; set; }
  public virtual List<Part> Parts { get; set; }

  public override string ToString()
  { 
    return this.Name;
  }
}
于 2013-01-20T11:00:37.010 回答