Как обрабатывать события в MVVM - PullRequest
8 голосов
/ 24 августа 2010

Я новичок в MVVM.Я просто изучаю этот шаблон и хочу использовать его в своем проекте.Я уже понял принцип работы этого шаблона и узнал, как использовать команды.Но у меня есть вопрос, как обрабатывать события других элементов управления, например, событие ListBox SelectionChanged.ListBox не имеет атрибута Command

Ответы [ 3 ]

14 голосов
/ 24 августа 2010

Вам часто не нужно.Например, вы можете просто связать свойство ListBox SelectedItem со свойством в вашей модели представления:

<ListBox ItemsSource="{Binding Customers}" SelectedItem="{Binding SelectedCustomer, Mode=TwoWay}"/>

Мало того, что это дает вам доступ к выбранному клиенту в вашей модели представления,это также позволяет вашей модели представления диктовать выбранному клиенту, устанавливая само свойство.

Существуют и другие методы, позволяющие «избежать» прямой обработки событий в вашем коде.Например, прикрепленное поведение.Однако вам не следует бояться обработки событий напрямую, если код связан исключительно с представлением и упрощает ваш код.

0 голосов
/ 29 августа 2010

BookLibraray приложение WPF Application Framework (WAF) показывает, как слушать события WPF в модели Model-View-ViewModel (MVVM)приложение.Это позволяет пользователю выбрать несколько книг, чтобы он мог удалить все из них одновременно.См. Класс BookLibrary.Presentation.Views.BookView.

0 голосов
/ 24 августа 2010

Чтобы добавить атрибут команды к вашему элементу управления, он должен наследоваться от ICommandSource.Проверьте этот пост, чтобы увидеть, как это сделано.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...