BindingSource dataGridView не обновляется - C#
Формулировка задачи:
Добрый день!
Разбираюсь с BindingSource. Возник вопрос.
вот у меня есть какой то простейший класс:
вот листинг класса формы:
При загрузке формы, мы создаем 5 элементов и они отображаются в dataGridView1. Тут все хорошо. При нажатии на кнопку я добавляю в List<TestData> testdata еще 3 элемента, но их отображение в dataGridView1 не происходит. Чтобы это произошло приходиться вызывать bs.ResetBindings(false); в конце. Но по моему, оно должно работать не так. Как только я изменил List<TestData> testdata, то dataGridView1 должен сам это заметить и тут же перерисовываться. Другими словами любое изменение List<TestData> testdata должно тут же (без дополнительных операций) отображается в dataGridView1. Или я не прав и этот метод все равно нужно вызывать?
public class TestData
{
private DateTime _datetime;
private int _rndvalue;
private string _uniquestring;
public DateTime datetime
{
get
{
return _datetime;
}
set
{
_datetime = value;
}
}
public int rndvalue
{
get
{
return _rndvalue;
}
set
{
_rndvalue = value;
}
}
public string uniquestring
{
get
{
return _uniquestring;
}
set
{
_uniquestring = value;
}
}
}public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private BindingSource bs = new BindingSource();
private List<TestData> testdata = new List<TestData>();
private void Form1_Load(object sender, EventArgs e)
{
//создаем набор данных для теста
for (int i = 0; i < 5; i++)
{
TestData td = new TestData();
td.datetime = DateTime.Now;
td.rndvalue = (new Random()).Next(0, 11);
td.uniquestring = Guid.NewGuid().ToString();
testdata.Add(td);
}
//делаем все настройки
bs.DataSource = testdata;
dataGridView1.DataSource = bs;
}
private void button1_Click(object sender, EventArgs e)
{
//добавляем еще 3 строки
for (int i = 0; i < 3; i++)
{
TestData td = new TestData();
td.datetime = DateTime.Now;
td.rndvalue = (new Random()).Next(0, 11);
td.uniquestring = Guid.NewGuid().ToString();
testdata.Add(td);
}
//обновление происходит
bs.ResetBindings(false);
}
}
Неужели ни у кого нет опыта работы с BindingSource?
Решение задачи: «BindingSource dataGridView не обновляется»
textual
Листинг программы
private void button3_Click(object sender, EventArgs e)
{
for (int i = 0; i < 3; i++)
{
TestData td = new TestData();
td.datetime = DateTime.Now;
td.rndvalue = (new Random()).Next(0, 11);
td.uniquestring = Guid.NewGuid().ToString();
bs.Add(td);
}
}