Как привязать событие UI Controls к ViewModel (MVVM)? - PullRequest
0 голосов
/ 07 апреля 2011

У меня есть AutoCompleteBox в моем приложении, и я связал его свойство ItemSource / SelectedItem с ViewModel.

Теперь я хочу связать событие, и у меня нет способа связать событие AutoCompeletBox KeyUP / KeyDown с ViewModel какя достигну этого ??

У меня есть кнопка в приложении, и я использовал RelayCommand для связывания Команды этой кнопки (она работает).

Не могли бы вы дать мне пример примера привязки?

Ответы [ 2 ]

1 голос
/ 07 апреля 2011

Если вы используете инструментарий GalaSoft MVVM, вы можете использовать EventToCommand для привязки события KeyUp к команде.Проверьте это здесь - http://geekswithblogs.net/lbugnion/archive/2009/11/05/mvvm-light-toolkit-v3-alpha-2-eventtocommand-behavior.aspx

Возможно, вы также захотите изменить свойство UpdateSourceTrigger в выражении привязки поля автозаполнения на «Свойство изменено»

Text="{Binding SearchText, UpdateSourceTrigger=PropertyChanged}"

Связывание по умолчаниюповедение на LostFocus, поэтому это мгновенно обновит вашу ViewModel.

0 голосов
/ 07 апреля 2011

Обработка событий KeyUp / KeyDown должна быть частью реализации View.Затем вы можете создать логику в View, которая будет использовать привязку или команды для получения связанных значений для автозаполнения из или в ViewModel.

И до того, как любой пурист, который считает, что вся логика должна быть в ВМ, начнет понижать голосование.Я считаю, что логика, связанная с View, должна оставаться в View.

...