Я знаю, что это неопределенный вопрос, но я был настолько зациклен на дизайне MVP, что в течение многих лет я решил держать себя в курсе и решил рискнуть MVVM архитектурного дизайна, я был читая множество блогов, примеров и материалов о шаблоне Stream / Observer, который следует за MVVM , но что мне неясно (не могу найти очень простой код), как MVVM обрабатывает события пользовательского интерфейса? такие как onclick? в MVP представление и презентатор имеют двусторонний контракт на обработку такой вещи
// called by view
presenter.onViewButtonClicked
void onViewButtonClicked() {
// do something here that business logic requires
view.doSomethingAfterPresenterReceivedClickEvent()
}
Я знаю, что View в MVVM подписывает на ViewModel, что когда что-то случается с данными (Модель) View будет реагировать на это
Теперь, как я могу сказать ViewModel, что я что-то нажал? (PS: я знаю, что мне нужно подписаться на ViewModel, чтобы прослушивать любые изменения, когда я что-то щелкаю) , мне просто нужны некоторые рекомендации и примеры, как я могу сказать ВМ, что я сделал что-то намеренно.
Я прочитал документацию Microsoft по MVVM, в которой что-то говорится о iCommand, что-то вроде контракта, чтобы сообщить MVVM о событии пользовательского интерфейса.
кто-нибудь просветит меня, пожалуйста ... Заранее спасибо
Редактировать: Я забыл упомянуть, я не использую DataBinding, и из-за честных плюсов и минусов, я решил не делать этого.