我们有一个方法,它返回当前显示在网格中的行。
public override List<object> GetData(int startIndex, int endIndex, string[] rowSortBy, bool[] rowAscSortOrder,
string[] rowGroupByOperations, string rowFilterExpression, ref int rowCount)
{
List<A> list = new List<A>();
.. logic..
return list;
}
问题是,现在网格列动态,它们会根据某些条件不断变化。这意味着我们不能使用类型化的类,因为数据成员是动态的。另外,我们无法更改List<object>
方法的返回类型GetData
,因为这实际上是由第三方控件使用的。
修改:我们需要对网格进行更新。
我能想到的唯一方法是使用反射来上课。
有什么想法吗?
答案 0 :(得分:1)
听起来你需要在列表中的对象上实现ICustomTypeDescriptor。
这样就可以请求一个属性,您可以在运行时使用新属性返回相关数据。
http://wraithnath.blogspot.co.uk/2011/01/implementing-icustomtypedescriptor-for.html
http://msdn.microsoft.com/en-us/magazine/cc163816.aspx
我花了一段时间才弄清楚它是第一次,因为它有点复杂。它确实有效!