Pregunta

Me gustaría cambiar el comportamiento de DataColumn.Expression de manera que cuando escribo:

DataColumn.Expression = "MyMethod(Price)"

Se llamará MiMetodo, pasar el valor de la columna Precio en él y mostrar valor evaluado.

¿Cómo puedo acomplish esto?

¿Fue útil?

Solución

No es posible. El analizador de expresiones detrás de la propiedad Expression es simple y no extensible. Hacer llamadas a funciones arbitrarias no es uno de sus capacidades. Hay varias maneras de solucionar este problema, sobre todo los que no requieren una costosa consulta de reflexión. Considere el caso DataTable.RowChanged por ejemplo.

Otros consejos

Una forma de evitar esto es hacer que su función como un campo calculado en bases de datos y spredsheets. Es posible hacer que los campos calculados avanzadas. Es necesario volver a escribir su función a una expresión y luego utilice [Precio] para referirse a la columna de origen. Como entiendo su pregunta que hace que sea posible hacer lo que se propone. La sintaxis para la expresión se puede encontrar aquí .

Sé que esto es una respuesta tardía a la pregunta, pero podría ayudar a los demás buscando la forma de hacer esto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top