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;

最初の要素が表示する TextBoxOrderNameで、2 つ目が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 に答える