在C#中为列表框格式化字符串

时间:2012-11-14 17:08:28

标签: c# listbox string-formatting

我首先要说列表框是类项目的要求。我只是想通过在将字符串添加到列表框之前格式化字符串来使其更好看并使其更好看。我有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());
}

1 个答案:

答案 0 :(得分:0)

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

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

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

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