0

所以我有这个数组

string[,] cars = new String[2, 2] { 
                { "VW Golf GTI", "30000" }, 
                { "Porsche GT3", "300000" }, 
                { "Porsche Cayenne", "80000" }, 
                { "BMW M6", "90000" } 
            };

并且想把所有东西都放在一个列表框中,我认为这会起作用,但它没有:/

lstBoxMarket.Items.AddRange(cars);

现在我如何将所有内容以格式放入列表框中

汽车 - 价格?

4

3 回答 3

2

试试这个:

string[,] cars = new string[4, 2] {
    { "VW Golf GTI", "30000" },
    { "Porsche GT3", "300000" },
    { "Porsche Cayenne", "80000" },
    { "BMW M6", "90000" }
};

for (int i = 0; i < cars.GetLength(0); i++)
{
    lstBoxMarket.Items.Add(cars[i, 0] + " - " + cars[i, 1]);
}

您的版本cars当前不会编译,因为您正在为数组初始值设定项(2 行 x 2 列)指定常量,但您的数据有 4 行。

于 2012-10-14T09:03:54.153 回答
2

更好的方法是将 ItemsSource 绑定到数据模型 Car 类型的新类的 ObservableCollection

你的看法

.xaml

<StackPanel>
        <ListBox ItemsSource="{Binding DataCollection}">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding Name}" />
                    <TextBlock Text=" - "/>
                    <TextBlock Text="{Binding Id}" />
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
        </ListBox>
</StackPanel>

你的模型 Car.cs

public class Car
{
    public string Name { get; set; }
    public int Id { get; set; }
}

您的视图模型将有一个 Collection 将绑定到 ItemsSource

CarViewModel.cs

public ObservableCollection<Car> DataCollection { get; set; }

DataCollection = new ObservableCollection<Car> 
{ 
    new Car { Name = "VW Golf GTI", Id = 30000 }, 
    new Car { Name = "Porsche GT3", Id = 30000 }, 
    new Car { Name = "Porsche Cayenne", Id = 80000 }, 
    new Car { Name = "BMW M6", Id = 90000 }
};
于 2012-10-14T09:30:09.830 回答
1

USEDataSource属性加载多维数组的数据。

listBox1.MultiColumn = true;
    listBox1.DataSource = cars;
于 2012-10-14T09:29:12.217 回答