【发布时间】:2010-12-15 00:58:03
【问题描述】:
我想改变DataColumn.Expression 的行为,以便在我写的时候:
DataColumn.Expression = "MyMethod(Price)"
它将调用 MyMethod,将 Price 列中的值传递给它并显示评估值。
我怎样才能做到这一点?
【问题讨论】:
标签: .net winforms datatable datacolumn
我想改变DataColumn.Expression 的行为,以便在我写的时候:
DataColumn.Expression = "MyMethod(Price)"
它将调用 MyMethod,将 Price 列中的值传递给它并显示评估值。
我怎样才能做到这一点?
【问题讨论】:
标签: .net winforms datatable datacolumn
解决此问题的一种方法是使您的函数像数据库和电子表格一样成为计算字段。可以制作高级计算字段。您需要将函数重写为表达式,然后使用 [Price] 来引用源列。据我了解你的问题,它可以做你想做的事。 表达式的语法可以在here找到。
我知道这是对这个问题的较晚回答,但它可能会帮助其他人研究如何做到这一点。
【讨论】:
不可能。 Expression 属性后面的表达式解析器简单且不可扩展。进行任意函数调用不是它的能力之一。有几种方法可以解决这个问题,尤其是那些不需要昂贵的反射查找的方法。以 DataTable.RowChanged 事件为例。
【讨论】: