ContextMenuService по очевидным причинам не вызывает событие SelectionChanged и не устанавливает SelectedItem, поскольку это будет означать, что ContextMenus с такими параметрами, как «Удалить», будет с ошибкой.
Что я думаю, ваша проблема в том, что вы не проверяете, установлен ли SelectedItem на самом деле, прежде чем приступить к работе над ним.
Вместо этого вы должны проверить, что SelectedItem не является нулевым, прежде чем выполнять какую-либо работу с ним.