Add BindingSource in DataRepository to DataBindings of TextBox in Form2 .
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// add some data
DataRepository.DataList.Add(new Item { ItemName = "Cookies", Quantity = 10, MeasuringUnits = "Pcs" });
DataRepository.DataList.Add(new Item { ItemName = "Bread", Quantity = 5, MeasuringUnits = "Box" });
DataRepository.DataList.Add(new Item { ItemName = "Candy", Quantity = 2, MeasuringUnits = "Pcs" });
dataGridView1.DataSource = DataRepository.DataSource;
}
private void button1_Click(object sender, EventArgs e)
{
if (Application.OpenForms.OfType<Form2>().FirstOrDefault() != null)
{
return;
}
var frm2 = new Form2();
frm2.StartPosition = FormStartPosition.CenterParent;
frm2.Show(this);
}
}
public partial class Form2 : Form
{
private TextBox txbItemName;
private TextBox txbQuantity;
private TextBox txbMeasuringUnits;
private Button btnAdd;
public Form2()
{
//InitializeComponent();
txbItemName = new TextBox();
txbQuantity = new TextBox();
txbMeasuringUnits = new TextBox();
btnAdd = new Button() { Text = "Add New Item" };
txbItemName.DataBindings.Add(new Binding(nameof(TextBox.Text), DataRepository.DataSource, nameof(Item.ItemName)));
txbQuantity.DataBindings.Add(new Binding(nameof(TextBox.Text), DataRepository.DataSource, nameof(Item.Quantity)));
txbMeasuringUnits.DataBindings.Add(new Binding(nameof(TextBox.Text), DataRepository.DataSource, nameof(Item.MeasuringUnits)));
this.Controls.Add(txbItemName);
this.Controls.Add(txbQuantity);
this.Controls.Add(txbMeasuringUnits);
this.Controls.Add(btnAdd);
for (int i = 1; i < this.Controls.Count; i++)
{
this.Controls[i].Top = this.Controls[i - 1].Bottom + 5;
}
btnAdd.Click += Add_Click;
}
private void Add_Click(object sender, EventArgs e)
{
DataRepository.DataSource.Add(new Item());
//DataRepository.DataSource.Add(new Item() { ItemName = "Empty", Quantity = 0, MeasuringUnits = "Pcs" });
DataRepository.DataSource.MoveLast();
}
}