2014-02-08 3 views
0

я столкнулся с проблемойПолучение специфических свойств из списка

У меня есть класс

public class StudentDetails 
{  
    int S_Detail_ID; 
    string address; 
    string email;  
} 

с указанной приготовьтесь метод и РМКО вызывая функцию, которая собирает List<StudentDetails> и показывать его в DataGridView проблему что список возвращает все свойства класса, но я только хочу, адрес и адрес электронной почты не s_detail_id

здесь код функции

private void btnAddNewRowInGrid_Click(object sender, EventArgs e) 
{ 

    List<StudentDetails> lstStudentDetails = GetStudentDetails(); 
    lststudentDetails.Add(new StudentDetails()); //what to do here, studentDetails is returning all properties but i want only addres and email 
    dataGridView1.DataSource = lstStudentDetails; 
} 

и GetStudent jusst подсчета строк в DataGridView и добавить новую строку

private List<StudentDetails> GetStudentDetails() 
{ 
    lstStudentDetails = new List<StudentDetails>(); 
    foreach (DataGridViewRow row in dataGridView1.Rows) 
    { 

     lstStudentDetails.Add(row.DataBoundItem as StudentDetails); 
    } 
    return lstStudentDetails; 
} 
+2

Вы можете либо) скрыть некоторые из столбцов DataGridView или б) использовать запрос Linq '.Select', чтобы возвращать только свойства, которые вы хотите отобразить, - которые используются в зависимости от того, хотите ли вы быть в состоянии получить доступ к идентификатору студента из datagridview? – stuartd

+0

@stuartd благодарит сэр за предоставление полезного решения. Я следил за скрытым столбцом, просто добавив строку ** dataGridView1.Columns [0] .Visible = false; ** и проблема решена, но я хотел бы спросить вас, если вы предоставите некоторые детали о решении b. ранее я сделал ** lstStudentDetails.Select (address => sd.Address()). toList() **, но это не решает проблему –

+0

@HassaanKhan почему связанные столбцы, а затем скрыть их? Лучше не связывать столбцы, которые вам не нужны –

ответ

3
  1. Выберите DataGridView в дизайнере и нажмите на маленький треугольник в правом верхнем углу управления
  2. Нажмите Изменить столбцы пункт меню
  3. Вручную добавьте столбцы для свойств адреса и электронной почты (введите имя свойства в DataPropertyName, элемент свойств столбца)
  4. Отключение колонок автоматического поколения

enter image description here

Вы не можете отключить колонки автоматическое поколение от дизайнера - его возможно только с кодом:

dataGridView1.AutoGenerateColumns = false; 

После того, что ваш код будет работать.

0

Вы можете попытаться скрыть столбец, который вам не нужен, указав его видимость на false.

dataGridView1.Columns["S_Detail_ID"].Visible = false; 
+0

, если вы проверите мой комментарий выше, я уже сделал это. здесь я пытаюсь изучить проект list.select() –

Смежные вопросы