Personalizar DataColumn.Expression manejo en C #
-
19-09-2019 - |
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?
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.