我有以下课程:
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
(要么我得不到任何东西,要么得到“{{1} “向用户显示。
目标是看到这样的事情:
Collection
或者其他什么,标题可以是任何东西,说实话,我对许多建议持开放态度。
非常感谢任何帮助。
答案 0 :(得分: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;
}
}