private void cmbSelect_SelectedIndexChanged(object sender, EventArgs e)
{
object selectedItem = cmbSelect.SelectedItem;
PropertyInfo info = selectedItem.GetType().GetProperty(context.SelectionListClassName);
if (info == null)
throw new Exception("Invalid Class Name: " + context.SelectionListClassName);
object list = info.GetValue(selectedItem, null);
if (list.GetType().IsGenericType && list is IEnumerable)
{
lvCheckList.Items.Clear();
var enumerable = (IEnumerable) list;
IEnumerator enumerator = enumerable.GetEnumerator();
while (enumerator.MoveNext())
{
object obj = enumerator.Current;
var lvi = new ListViewItem();
lvi.Tag = obj;
int i = 0;
foreach (string name in columnNames)
{
PropertyInfo pi = obj.GetType().GetProperty(name);
var value = (String) pi.GetValue(obj, null);
lvi.SubItems.Add(value);
}
lvCheckList.Items.Add(lvi);
}
}
}