Я, должно быть, схожу с ума - я не могу выполнить простую задачу отображения моего списка в моем DataGridView с помощью кода dgv.datasource = list. Ошибок не появляется, но мой список остается пустым - может ли кто-нибудь помочь? Я уверен, что это что-то очевидное, но я просто не могу это заметить.
namespace WindowsFormsApp4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
List<DGVNames> NamesList = new List<DGVNames>();
NamesList.Add(new DGVNames("Adam", 18, "Wigan"));
NamesList.Add(new DGVNames("Bob", 21, "Bolton"));
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = NamesList;
}
}
}
а это мой класс ..
namespace WindowsFormsApp4
{
class DGVNames
{
public String strName;
public int intAge;
public String strTown;
public DGVNames(String _strName, int _intAge, String _strTown)
{
strName = _strName;
intAge = _intAge;
strTown = _strTown;
}
}
}
не могли бы вы объяснить дальше, пожалуйста? Новое в C# из VB
Он ничем не отличается от VB - это чистая вещь
Я думаю, проблема в том, что сказал новый участник: DataGridView
требует привязки к свойствам, а не только к полям. Вам потребуются Getters
и Setters
, чтобы привязка заработала.
Попробуйте изменить свой класс на этот, и он должен работать:
public String strName { get; set; }
public int intAge { get; set; }
public String strTown { get; set; }
public DGVNames(String _strName, int _intAge, String _strTown)
{
strName = _strName;
intAge = _intAge;
strTown = _strTown;
}
Кстати, это также работает без сеттера, если OP требуется свойство readonly.
Вот и все, спасибо. Ребята - в спешке за быстрым решением я не потрудился использовать Get и Set - лень стоила мне нескольких часов!
@Luthfay Хороший улов. Не знал этого!
Привязка данных требует Характеристики, а не просто полей