Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
course_(Windows&Web).docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.68 Mб
Скачать

Команды.

В дополнение к предоставлению доступа к данным, которые будут отображены или отредактированы в представлении, модель представления, вероятно, определит одно или более действий или операции, которые могут быть выполнены пользователем. В WPF и Silverlight, действия или операции, которые пользователь может выполнить через UI, обычно определяются как команды. Команды обеспечивают удобный способ представить действия или операции, которые могут быть легко связаны со средствами управления в UI. Они инкапсулируют код, реализующий необходимые действие, и помогают сохранить его отделённым от визуального представления.

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

Модель представления может реализовать команды как Command Method, или как Command Object (объект, который реализует интерфейс ICommand). В любом случае, взаимодействие представления с командой может быть определено декларативно, не требуя сложного кода обработки событий в code-behind представления. Например, определенные элементы управления в WPF и Silverlight поддерживают команды и предоставляют свойство Command, которое может быть связано с объектом ICommand модели представления. В других случаях, поведение команды может использоваться для связи элемента управления с методом команды или объектом команды модели представления.

Реализация Command Objects.

Объект команды является объектом, который реализует интерфейс ICommand. Этот интерфейс определяет метод Execute, который инкапсулирует необходимую работу, и метод CanExecute, который указывает, может ли команда быть вызвана в определённое время. Оба этих метода принимают единственный аргумент в качестве параметра для команды. Инкапсуляция логики реализации необходимой работы в объекте команды означает, что она может легче тестироваться и поддерживаться.

Реализация интерфейса ICommand является понятной, более подробно она рассматривалась в предыдущих лекциях.

Подтверждение правильности данных и сообщение об ошибках.

Ваша модель представления или модель часто будут обязаны выполнять валидацию данных и сигнализировать о любых ошибки правильности данных представлению так, чтобы пользователь мог их исправить.

Silverlight и WPF оказывают поддержку для управления ошибками подтверждения правильности данных, которые происходят когда изменяются отдельные свойства, связанные с элементами управления в представлении. Для отдельных свойств, которые связываются с элементом управления, модель представления или модель могут сигнализировать ошибку подтверждения правильности данных в пределах метода set свойства, отклоняя входящее плохое значение и выдавая исключение. Если свойство ValidatesOnExceptions на привязке данных будет равно true, то механизм привязки данных в WPF и Silverlight обработает исключение и покажет пользователю визуальный индикатор, что есть ошибка правильности данных.

Однако, выдачу исключений свойствами таким образом, нужно избегать где только возможно. Альтернативный подход должен реализовать интерфейсы IDataErrorInfo или INotifyDataErrorInfo (данный интерфейс рассматриваться не будет, в связи с тем, что он поддерживается в настоящий момент только в Silverlight 4 и не доступен в WPF 4 и как следствие его применение в синхронной разработке двух типов приложения является не столь актуальным) в классах модели представления или модели. Эти интерфейсы позволяют модели представления или модели выполнять проверку правильности данных для значений одного или более свойств и возвращать сообщение об ошибке представлению так, чтобы пользователь мог быть уведомлен об ошибке.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]