В чём суть паттерна MVVM в WPF?

Слышал, что при изучении технологии WPF очень важно знать такой паттерн как MVVM. Подскажите пожалуйста, в чём суть этого паттерна? Почему его так необходимо знать?

MVVM - Model View ViewModel - это паттерн, который отделяет визуальную часть приложения от его логики. Тобишь это архитектурный паттерн.

По модели MVVM у нас есть 3 компонента.

Model: В этой части у нас лежат данные, которые используются в приложении. Модели могут содержать логику, которая непосредственно связывает данные. При этом всём логика связывания данных никаким образом не должна касаться логики представления или с визуальными элементами управления.

View: Эта часть определяет визуальный интерфейс, через который пользователь взаимодействует с приложением. В технологии WPF представление - это код XAML, который определяет интерфейс в виде кнопок, текстовых полей и прочих визуальных элементов.

ViewModel: Эта часть связывает модель и представление.


Если ты хочешь быть разработчиком UI на технологии WPF, то действительно необходимо знать этот паттерн хотя бы потому, что он достаточно часто используется. В результате использования данного паттерна ты получаешь разделённое на 3 компонента приложение, которое, за счёт этого разделения, намного легче разрабатывать и тестировать, а также в скорее и поддерживать.

Если так будет проще, то считай что MVVM в WPF это как MVC в ASP.NET.