2015-08-15 5 views
0

Я заполняю свой список свойствами, и я хочу, чтобы этот список был источником данных моих данныхGridviiew.Добавить столбцы в DataGridView

Но когда я устанавливаю этот список в dataGridView как dataSource, все значения свойств находятся в одном столбце. Как добавить столбец в dataGridView для каждого свойства?

Вот мой код:

private void dataGridView2_CellClick(object sender, DataGridViewCellEventArgs e) 
{  
    Restaurant n = new Restaurant); 

    foreach (DataGridViewCell cell in dataGridView2.SelectedCells) 
    { 
     IList<String> lista = new List<String>(); 
     n.Data = string.Empty; 
     n.Data2 = string.Empty; 
     int indexOfYourColumn = 9; 
     int index2 = 0; 
     foreach (DataGridViewRow row in dataGridView1.Rows) 
     { 
      n.Data = row.Cells[indexOfYourColumn].Value.ToString(); 
      n.Data2 = row.Cells[index2].Value.ToString(); 
      if (cell.Value.ToString() == n.Data.ToString()) 
      { 

       lista.Add(n.Data); 
       lista.Add(n.Data2); 
       dataGridView3.DataSource = lista.Select(x => new { Value = x }).ToList(); 

      } 
     }   
    } 
} 
+0

У вас есть только одно свойство («Значение»), поэтому данные попадают в один столбец. Вам необходимо свернуть данные или создать структуру, в которой есть свойства, которые вы хотите, и создать перечислимый список из них. – Crowcoder

+0

@ user4861279, если у вас есть новый вопрос, создайте новый вопрос вместо редактирования старого вопроса. – Han

+0

@ Handoko.Chen У меня проблема с добавлением нового вопроса, пожалуйста, помогите здесь, если вы знаете :) – user4861279

ответ

2

Я думаю, что вы пытаетесь сделать что-то вроде этого, хотя я не уверен, так как это немного непонятно, из вашего кода.

private void dataGridView2_CellClick(object sender, DataGridViewCellEventArgs e) 
{ 
    /* Place indexes here, there is no need to initialize * 
    * so many integers inside loop if they're not changing */ 
    int indexOfYourColumn = 9, index2 = 0; 

    var restaurantList = new List<Restaurant>(); 
    foreach (DataGridViewCell cell in dataGridView2.SelectedCells) 
    { 
     foreach (DataGridViewRow row in dataGridView1.Rows) 
     { 
      if (cell.Value.ToString() == row.Cells[indexOfYourColumn].Value.ToString()) 
      { 
       restaurantList.Add(new Restaurant() 
       { 
        Data = row.Cells[indexOfYourColumn].Value.ToString(), 
        Data2 = row.Cells[index2].Value.ToString() 
       }); 
      } 
     } 
    } 

    dataGridView3.DataSource = restaurantList; 
} 
Смежные вопросы