Я хочу сделать свой компонент, который работает аналогично большинству элементов управления данными (MS, Telerek и т. Д.):
myControl.DataSource = new List<myClass>();
mycontrol.NameField = "Name";
myControl.ValueField = "Value";
myControl.DataBind;
У меня есть тестовый код:
class myClass
{
public String Name
{
get { return _name; }
}
...
}
class control
{
public void process(object o)
{
Type type = o.GetType();
System.Reflection.PropertyInfo info = type.GetProperty("Name");
object val = info.GetValue(o,null);
System.Console.WriteLine(val.ToString());
}
public void bind(IEnumerable<object> list)
{
foreach (object o in list)
{
process(o);
}
}
}
class Program
{
static void Main(string[] args)
{
control c = new control();
List<myClass> data = new List<myClass>();
data.Add(new myClass("1 name", "first name", 1.0f));
c.bind(data.Cast<object>());
}
}
Конечно, я хочу избавиться от c.bind(data.Cast<object>());
. Какой тип я должен передать в качестве аргумента этой функции? Я попытался передать Object, но есть проблема с приведением аргумента обратно в список (управление должно быть очень универсальным, и я не хочу иметь какие-либо фиксированные типы данных).
Заранее спасибо.