.net - puntero - Personalizar DataColumn. Manejo de expresiones en C#
puntero a puntero (2)
Imposible. El analizador de expresiones detrás de la propiedad Expression es simple y no extensible. Realizar llamadas a funciones arbitrarias no es una de sus capacidades. Hay varias formas de evitar esto, especialmente aquellas que no requieren una búsqueda de reflexión costosa. Considere el evento DataTable.RowChanged por ejemplo.
Me gustaría cambiar el comportamiento de DataColumn.Expression
para que cuando escriba:
DataColumn.Expression = "MyMethod(Price)"
Llamará a MyMethod, pasará el valor de la columna Price y mostrará el valor evaluado.
¿Cómo puedo lograr esto?
Una forma de evitar esto es hacer que su función sea un campo calculado, como en las bases de datos y spredsheets. Es posible hacer campos calculados avanzados. Necesita volver a escribir su función en una expresión y luego usar [Precio] para referirse a la columna fuente. A medida que entiendo su pregunta, hace posible hacer lo que pretende. La sintaxis para la expresión se puede encontrar aquí .
Sé que esta es una respuesta tardía a la pregunta, pero podría ayudar a otros a investigar cómo hacerlo.