Я использую WinForms, framework 4.6.1.
У меня есть два элемента управления DataGridView на TabControl, каждый на своей собственной TabPage.
У меня есть два небольших класса, которые я использую в качестве источников данных для каждого отдельного DataGridView.В обоих случаях я создаю List< myClasses >
, где myClasses являются одним из
internal sealed class cls_grid
{
public string id { get; set; }
public string value { get; set; }
internal cls_grid(string _id, string _value)
{
id = _id;
value = _value;
}
}
ИЛИ
internal sealed class cls_image
{
public List<cls_image_data_grid>
cls_image_data = new List<cls_image.cls_image_data_grid>();
public string tab_text;
public Bitmap image;
internal class cls_image_data_grid
{
public string id;
public string value;
internal cls_image_data_grid(string _id, string _value)
{
id = _id;
value = _value;
}
}
internal cls_image(string _tab_text, Bitmap _image)
{
tab_text = _tab_text;
image = _image;
}
}
В моих двух DataGridView нет абсолютно никакой разницы;Я могу сказать это с абсолютной уверенностью, потому что у меня есть свой собственный класс DataGridView, который наследует базовый класс DataGridView, поэтому все свойства, которые я установил, вступают в силу для обоих, кроме имени курса.
Однако мой первый DataGridViewс использованием класса cls_grid заполняется идеально, но мой DataGridView с использованием класса cls_image.cls_image_data_grid заполняться не будет.DataGridView создает количество строк, которые в данный момент присутствуют в списке, но в DataGridView нет текста.Даже когда я делаю все свои свойства или свой внутренний класс общедоступными, это работает.
Если я копирую значения из List в List , и вместо этого передайте его в DataGridView, он заполняется на отлично.
Итак, теперь мой вопрос, есть ли какие-либо ограничения на DataSridView DataSource и что он будет или не будет принимать, или что можетвопрос быть?