Определите роль ViewModel в вашем проекте: она должна служить связующим звеном между моделью данных и пользовательским интерфейсом, обеспечивая удобство передачи данных и реакции на изменения.
Шаг 1. Создайте класс ViewModel
Создайте новый класс, например MyViewModel. Его структура должна реализовать интерфейс INotifyPropertyChanged, чтобы автоматически обновлять UI при изменениях данных.
public class MyViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
Шаг 2. Добавьте свойства с уведомлением
Объявите свойства, которые будут отображаться в интерфейсе. Внутри установщика используйте метод OnPropertyChanged для оповещения об изменениях.
private string _name;
public string Name
{
get { return _name; }
set
{
if (_name != value)
{
_name = value;
OnPropertyChanged(nameof(Name));
}
}
}
Шаг 3. Свяжите ViewModel с View
В XAML-описании интерфейса установите DataContext на экземпляр вашей ViewModel. Это обеспечит автоматическую привязку данных без дополнительных усилий.
...
Шаг 4. Настройте привязки в интерфейсе
Добавьте элементы, и укажите для каждого свойство ViewModel по атрибуту Binding.
Шаг 5. Обновляйте свойства из кода
Изменяйте свойства ViewModel в логике программы или по событиям интерфейса – интерфейс автоматически отобразит изменения благодаря уведомлениям.
Дополнительные советы
- Используйте ICommand для обработки команд в UI. Создайте команды и привяжите их к элементам управления.
- Обеспечьте разделение ответственности: ViewModel не должна управлять отображением, фокусируясь только на данных и логике.