0

我们有一个方法,它返回当前显示在网格中的行。

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这实际上是由第三方控件使用的。

编辑:我们需要在网格上进行更新。

我能想到的唯一方法是使用反射来上课。

有任何想法吗?

4

1 回答 1

1

听起来您需要在列表中的对象上实现 ICustomTypeDescriptor。

通过这种方式请求属性,您可以在运行时返回具有新属性的相关数据。

http://wraithnath.blogspot.co.uk/2011/01/implementing-icustomtypedescriptor-for.html

http://msdn.microsoft.com/en-us/magazine/cc163816.aspx

这花了我一段时间才弄清楚第一次,因为它有点复杂。但是它确实有效!

于 2012-04-27T11:02:35.477 回答