можно еще один небольшой вопрос - насколько допустимо осуществлять какую то осмысленную реализацию функционала непосредственно в самом mainview? Глядя на MVVM фреймворки там круто релизован байндинг всех элементов view.Тоесть можно создать класс и все что представлено во view в нем же и доступно
В моем же случае приходится писать часть кода непосредственно в основном блоке ибо переменые Window не доступны и их придется как то говно кодом передавать в класс