Настройте обработку DataColumn.Expression в C # - PullRequest
3 голосов
/ 10 ноября 2009

Я хотел бы изменить поведение DataColumn.Expression, чтобы при написании:

DataColumn.Expression = "MyMethod(Price)"

Он вызовет MyMethod, передаст значение из столбца Price и отобразит оцененное значение.

Как мне это сделать?

Ответы [ 2 ]

4 голосов
/ 10 ноября 2009

Не возможно. Анализатор выражений за свойством Expression является простым и не расширяемым. Выполнение произвольных вызовов функций не является одной из его возможностей. Есть несколько способов обойти это, особенно те, которые не требуют дорогого поиска. Рассмотрим, например, событие DataTable.RowChanged.

1 голос
/ 10 декабря 2010

Обходной путь - сделать вашу функцию вычисляемым полем, как в базах данных и таблицах. Можно сделать расширенные вычисляемые поля. Вам необходимо переписать вашу функцию в выражении, а затем использовать [Price] для ссылки на исходный столбец. Как я понимаю ваш вопрос, это позволяет делать то, что вы намерены. Синтаксис для выражения можно найти здесь .

Я знаю, что это поздний ответ на вопрос, но он может помочь другим разобраться, как это сделать.

...