在这段代码中,我将ColumnInfo添加到列表中, 在我看来,传递给ColumnInfo get的getter表达式被调用到我的行上。 这一切工作正常,除了在我的lambda表达式中使用的局部变量“childt.Naam”。运行时编译表达式中的局部变量
运行时评估会导致childt.Naam始终是在foreach中传递的最后一个childt中的一个。
我如何确保这些“局部变量”被正确传递到表达式
foreach (var childt in itemt.ItemTemplates)
{
columns.Add(new ColumnInfo<Item>(model => level(model).GetV(childt.Naam, model.Taal) + childt.Naam, childt.Naam, new TextPropertyRenderer(), editable));
}
这里的ColumnInfo类的构造函数中的相关部分
public ColumnInfo(Expression<Func<TModel, object>> getter, string title, IPropertyRenderer renderer, bool editable = false)
{
this.renderer = renderer;
this.Editable = editable;
this.Getter = getter.Compile();
}
大,似乎这样的伎俩! ,当定时器启动时会接受:) – 2012-02-27 13:28:29