Wednesday, September 23, 2009

C# Snippets: List Box Data Binding

Using datasets and SQL Server to bind data to controls is all very well and good, but what if you don't have a database? You could add items from an array or list using a foreach loop, but luckily there is a better way.

.Net allows you to easily bind a list object to a list box control without the need to iterate through every item in the list. This method even works for custom types such as classes or structures.

In this example I have created a custom Person structure that holds first name and last name. I then set the data source of a list box to the instance of the Person object. When the program is run, the list box will contain "John" and "Jane". For advanced data types you can set the property to be displayed using the DisplayMember property of the list box.

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
Person[] People = new Person[] {
new Person("John","Smith"),
new Person("Jane" ,"Doe")};
lstPersons.DataSource = People;
lstPersons.DisplayMember = "FirstName";
}
}

public struct Person
{
private string firstName, lastName;

public Person(string firstName, string lastName)
{
this.firstName = firstName;
this.lastName = lastName;
}

public string FirstName
{
get
{
return firstName;
}
}

public string LastName
{
get
{
return lastName;
}
}
}
...

1 comment:

  1. Nice article and well defind example visit for more detail dapfor. com

    ReplyDelete

Followers