Правильный способ в MVVM направить обработку RelayCommand родительской модели представления

StackOverflow https://stackoverflow.com/questions/1288868

  •  18-09-2019
  •  | 
  •  

Вопрос

Я очень новичок в MVVM и даже в какой-то степени в WPF, так что потерпите меня...

У меня есть приложение MVVM, которое имеет главное окно, содержащее экземпляр viewmodel разных типов в зависимости от состояния приложения.Одной из таких моделей просмотра является экран параметров, который содержит кнопку для перезапуска приложения и входа в базу данных как другой пользователь. Используя RelayCommand, как я могу заставить родительский элемент (главное окно) обработать эту команду и выдать Window.Вызов метода Close()?

Это было полезно?

Решение

Определите RelayCommand в модели родительского представления.Связанные обработчики также будут определены в модели родительского представления.

Теперь, когда вы создаете дочерний модуль просмотра, передайте объект Paremtn View model в дочернюю ViewModel в конструкторе (шаблон внедрения зависимостей).

Теперь вы можете настроить привязку команд для вашего вида или модели представления.

Другой альтернативой было бы фактически использовать маршрутизируемую команду вместо команды relay и позволить ей всплывать в вашей модели parentview.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top