Классические элементы пользовательского интерфейса в Windows Presentation Foundation. Шамшев Ан. Б. - 79 стр.

UptoLike

Составители: 

78
и с помощью соответствующей кнопки в панели инструментов. В опреде-
ленных моментах функционирования приложения задача PrintDocument()
должна быть недоступной (например, отсутствие документа). Это подра-
зумевает отключение соответствующих команд в двух меню и кнопки в
панели инструментов таким образом, чтобы на них нельзя было выпол-
нять щелчок, а также игнорирование соответствующей клавиатурной ком-
бинации. Написание кода, включающего и отключающего соответствую-
щие элементы управления при различных условиях, является весьма не-
простой задачей. Следует также отметить, что допущение в нем ошибки
может привести к тому, что различные блоки кода состояния будут пере-
крываться неправильно, оставляя элемент управления в активном состоя-
нии даже тогда, когда он не должен быть доступен. С точки зрения после-
дующего сопровождения программного продукта такой код может стать
причиной серьезным проблем. Написание и отладка подобного кода явля-
ется одним из наименее приятных аспектов разработки Windows-
приложений.
Удивительно, но в наборе инструментальных средств Windows
Forms не было никаких функциональных возможностей, которые могли
бы облегчать выполнение подобных операций. Разработчики могли созда-
вать необходимую им инфраструктуру самостоятельно, но большинство
из них предпочитало этого не делать. WPF заполняет этот пробел, предла-
гая новую командную модель, которая предоставляет две следующих
важных возможности:
делегирование событий подходящим командам;
поддержание включенного состояния элемента управления в син-
хронизированном виде с помощью состояния соответствующей
команды.
Командная модель WPF является не настолько прямолинейной. Для
подключения к модели маршрутизируемых событий ей требуется не-
сколько отдельных компонентов, которые будут рассмотрены в данном
разделе. Однако в концептуальном плане модель является достаточно