public override object GetControlValue(Control control)
{
var listControl = control as ListControl;
if (listControl == null) return null;
var list = ((IList) listControl.DataSource);
if (listControl.SelectedIndex >= list.Count || listControl.SelectedIndex < 0) return null;
return list[listControl.SelectedIndex];
}