0

我将首先说列表框是类项目的要求。我只是想通过在将字符串添加到列表框之前对其进行格式化来使它看起来更好。我有一个用于Product.ToString()格式化字符串的覆盖,但是当我将它添加到列表框中时,格式就会消失。

ToString类中的方法Product

public override string ToString()
{
    string newFormat = string.Format("{0,0}{1,20}", Name, Price);
    return newFormat;
}

更新方法:

protected void updateLists()
{
    availableProducts_LB.Items.Clear();
    foreach (Product p in customer.AvailableProducts)
        availableProducts_LB.Items.Add(p.ToString());

    shoppingCart_LB.Items.Clear();
    foreach (Product p in customer.shoppingCartList)
        shoppingCart_LB.Items.Add(p.ToString());
}
4

1 回答 1

0

只需将您的 Product 实例直接添加到 ListBox(不要调用 ToString):

availableProducts_LB.Items.Clear();
foreach (Product p in customer.AvailableProducts)
    availableProducts_LB.Items.Add(p);

ListBox 将使用 Product.ToString 方法来显示列表中的项目。

然后在 ToString 中的 return 语句上放置一个断点,以确保它是您期望的值。

于 2012-11-14T17:13:40.133 回答