Паттерн MVVM (Model-View-ViewModel) работает путём разделения приложения на три функциональные части: 1. Модель (Model) представляет собой логику работы с данными и описание фундаментальных данных, необходимых для работы приложения. 2. Представление (View) — графический интерфейс (окна, списки, кнопки и т. п.). 3. Модель Представления (ViewModel) — с одной стороны, абстракция Представления, а с другой — обёртка данных из Модели, подлежащих связыванию. Такое разделение позволяет ускорить разработку и поддерживаемость программы — можно менять один компонент, не затрагивая код другого.