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行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; }
}

ビュー モデルには、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 に答える