Problems With BindingList<> part 2.

I have got closer to cleaning up the BindingList<> problem:

using System.Collections.Generic;
using System.ComponentModel;

namespace WindowsApplicationDataBinding
public class Node
private string _Name;
public string Name{ get{return _Name;} set{_Name = Name;}}

private int _Age;

public int Age
get { return _Age; }
set { _Age = value; }

public Node(string name, int age)
_Name = name;
_Age = age;

public string Birthday { get { return “Unknown”; } }


public class BindingClass : BindingList, ITypedList
private PropertyDescriptorCollection _Description = null;

#region ITypedList Members

public PropertyDescriptorCollection GetItemProperties(PropertyDescriptor[] listAccessors)
if (_Description == null)
_Description = TypeDescriptor.GetProperties(typeof(Node)).Sort(new string[] {“Name”, “Age”});
return _Description;

public string GetListName(PropertyDescriptor[] listAccessors)
return typeof(Node).Name;


This version allows the application to specify the sort order of the columns.

The next step is to move this into an attribute based version.

It would also be useful if the description and hidden could be set on the same attribute.

What I want is to mark node as:

[BindingDetails(Description=”First Name”,Order=1,Hidden=False)]

string Name …

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s