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

Вид: 20694|Ответ: 0

[WPF] WPF RelayCommand

[Скопировать ссылку]
Опубликовано 18.12.2017 21:16:49 | | |

В распространённой разработке Wpf мы реализуем интерфейс INotifyPropertyChanged в ViewModel, чтобы достичь цели уведомления об изменениях интерфейса через запуск события PropertyChanged.

В фреймворке MVVMLight определяемый здесь ViewModel унаследован от ViewModelBase, который инкапсулирован в фреймворке MvvmLight, и реализовал интерфейс INotifyPropertyChanged.

Поэтому при определении свойства ViewModel нам нужно только вызвать RaisePropertyChanged(PropertyName), чтобы уведомить об изменении свойства.



События — самый важный способ взаимодействия интерфейса с фоновым кодом в приложениях WPF/SL, и в отличие от традиционных методов, события обрабатываются в основном через привязку к командам в mvvm, поэтому, чтобы понять, как обрабатываются события в mvvm, сначала нужно ознакомиться с тем, как работают команды.

1. Команда RelayCommand

Команды WPF/SL создаются с реализацией интерфейса ICommand. ICommand открывает два метода (Execute и CanExecute) и событие (CanExecuteChanged). Execute выполняет действие, связанное с командой. CanExecute определяет, можно ли выполнить команду на текущей целевой команде. Класс, реализующий интерфейс ICommand в MvvmLight, — это RelayCommand, который инициализирует методы Execute и CanExecute через конструктор, так что конструктор передаёт параметры типа делегата, а Execute и CanExecute выполняют делегированные методы, при этом соответствующий код RelayCommand выглядит следующим образом:


2. Связывание атрибутов Comand

Простой пример: TextBox и кнопка, TextBox доступен только тогда, когда содержимое не пусто, и доступная кнопка нажимается, чтобы показать содержимое TextBox.




ViewMode:







Предыдущий:android-TableLayout, а также использование TableRow
Следующий:Главное окно открывается, когда окно входа в WPF закрыто
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com