С точки зрения удобства использования я должен сказать, что контекстное меню содержит только вещи, которые на самом деле являются просто ярлыками для других элементов пользовательского интерфейса. Я привожу пример: в MS Word у вас есть контекстное меню «Копировать», если вы щелкнете правой кнопкой мыши по выделенному тексту. Пункт меню «Копировать» на самом деле является просто ярлыком для редактирования главного меню -> Копировать. Таким образом, с точки зрения удобства использования вашему приложению требуется меню (или кнопка) или все, что делает то же самое.
Теперь, обработка синуса в главном меню не может быть выполнена в самой сетке, почему контекстное меню должно обрабатываться в сетке? Мне это кажется противоречивым.
Обработка этого в диалоге, а не в самом элементе управления кажется мне более естественной. Это не связано с окружающей средой, которую вы используете. В C # я бы сделал то же самое.