2012-10-14 2 views
0

에 2 차원 배열을 퍼팅 그래서이 배열을목록 상자

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

을 그리고 목록 상자에 모든 것을 넣어 원하고, 나는이 일 것이라고 생각하지만 그렇지 않습니다 :/

lstBoxMarket.Items.AddRange(cars); 

이제 목록 상자에 모든 내용을 넣으시겠습니까

자동차 가격?

+0

, zagged 배열해야 사용 –

+0

HTTP ://stackoverflow.com/questions/794163/adding-custom-class-objects-to-listbox-in-c-sharp –

답변

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]); 
} 

당신이 (2 열로 2 행) 배열 초기화에 대한 상수를 지정하는대로 cars의 버전이 현재 컴파일되지 않지만 데이터가 4 개 행이 있습니다.

+0

굉장, 고마워! – vlovystack

+0

도와 드리겠습니다! 돌아와서 이것을 대답으로 받아 들여야한다는 것을 잊지 마십시오. –

1

USE DataSource 다차원 배열의 데이터를로드하는 속성입니다.

listBox1.MultiColumn = true; 
    listBox1.DataSource = cars; 
2

더 나은 방법은 데이터 모델의 차종에 새로운 클래스의 ObservableCollection에에 ItemsSource 바인딩하는 것

로보기

<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> 

.xaml 귀하 모델 자동차.

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

CarViewModel.cs가 ItemsSource에 바인딩됩니다 컬렉션을해야합니다 귀하의 뷰 모델

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 } 
}; 
귀하의 코드를 준수 할 수없는
+0

+1 좋은 답변입니다. 그러나 컨버터를 통해 (또는 'StringFormat'을 사용하여) 모델 또는 단일 뷰 모델 속성에 바인딩 된 단일 'TextBlock'은 최종 결과가 논리적으로 세 개의 별도 텍스트 블록이 아니어도 좋을 수 있습니다. 3 개의 개별 텍스트 블록은 화면 판독기로 3 개의 별도 문자열로 읽습니다. –