"MVVM не разрешает выделение кода и обработку событий."
Упс! Вот в чем проблема.
MVVM препятствует написанию кода, это правда, но только тогда, когда что-то можно сделать разумно через Xaml. «Ты не будешь скрытым», никто никогда не говорил с подсказкой.
Иногда обработка события - это самый простой и лучший способ достичь своей цели. Когда это так, примите это, решите свою проблему и идите дальше. Иногда даже невозможно достичь своей цели в XAML. В этих случаях, бросьте логику представления в коде позади представления и продолжайте.
Гораздо важнее поддерживать архитектурные цели MVVM (разделение проблем между уровнями), чем строго соблюдать эмпирические правила (например, избегать выделения кода). Если это различие не сделано, ты скучаешь по лесу за деревьями.