using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace bindinglistexample
{
public partial class Form1 : Form
{
Random randomNumber = new Random();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
InitializeListOfParts();
listBox1.DataSource = ListOfParts;
listBox1.DisplayMember = "PartName";
//listBox1.DisplayMember = "PartNumber";
ListOfParts.AddingNew += new AddingNewEventHandler(ListOfParts_AddingNew);
ListOfParts.ListChanged += new ListChangedEventHandler(ListOfParts_ListChanged);
}
BindingList<Part> ListOfParts;
private void InitializeListOfParts()
{
ListOfParts = new BindingList<Part>();
ListOfParts.AllowNew = true;
ListOfParts.AllowRemove = false;
ListOfParts.RaiseListChangedEvents = true;
ListOfParts.AllowEdit = false;
ListOfParts.Add(new Part("Widget",1234));
ListOfParts.Add(new Part("Gdget",5678));
}
void ListOfParts_AddingNew(object sender, AddingNewEventArgs e)
{
e.NewObject = new Part(textBox1.Text, int.Parse(textBox2.Text));
}
void ListOfParts_ListChanged(object sender,ListChangedEventArgs e)
{
MessageBox.Show(e.ListChangedType.ToString());
}
private void button1_Click(object sender, EventArgs e)
{
Part newPart = ListOfParts.AddNew();
if (newPart.PartName.Contains(" "))
{
MessageBox.Show("Part name cannot contain spaces");
ListOfParts.CancelNew(ListOfParts.IndexOf(newPart));
}
else
{
textBox2.Text = randomNumber.Next(9999).ToString();
textBox1.Text = "Enter Part Name";
}
}
}
public class Part
{
private string name;
private int number;
public Part() { }
public Part(string nameForPart, int numberForPart)
{
PartName = nameForPart;
PartNumber = numberForPart;
}
public string PartName
{
get { return name; }
set { name = value; }
}
public int PartNumber
{
get { return number; }
set { number = value; }
}
}
}