Встречается на 12% собеседований по C#

Что такое паттерн MVVM

MVVM (Model-View-ViewModel) — это архитектурный паттерн, разделяющий приложение на три компонента:

  • Model — бизнес-логика и данные.
  • View — UI (XAML в WPF/UWP/Maui), отображает данные и передает пользовательские действия в ViewModel.
  • ViewModel — посредник между View и Model, содержит логику представления и команды, уведомляет View об изменениях через INotifyPropertyChanged или ObservableCollection.

Пример:

csharp
// Model
public class User {
    public string Name { get; set; }
}

// ViewModel
public class UserViewModel : INotifyPropertyChanged {
    private User _user;
    public string Name {
        get => _user.Name;
        set {
            _user.Name = value;
            OnPropertyChanged();
        }
    }
    public event PropertyChangedEventHandler? PropertyChanged;
    protected void OnPropertyChanged([CallerMemberName] string? name = null) =>
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
}

// View (XAML)
<TextBox Text="{Binding Name, Mode=TwoWay}"/>

Плюсы:

  • Четкое разделение ответственности.
  • Упрощает тестирование (ViewModel не зависит от UI).
  • Поддержка двустороннего биндинга (WPF/Maui).

Минусы:

  • Избыточность для простых приложений.
  • Крутая кривая обучения (биндинги, команды).

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы