Главная страница
Случайная страница
Разделы сайта
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Краткий анализ задачи
Теперь будем модифицировать этот проект, подгоняя его под использование механизма команд. Но прежде проведем ревизию библиотечных команд, возможно не все из них закрывают наши источники и часть команд придется создавать самим. За основу возьмем источники меню, поскольку там наиболее полно представлены задачи нашего приложения. Интересующие нас библиотечные команды находятся в классе ApplicationCommands пространства имен System.Windows.Input
Сопоставление задач приложения и библиотечных команд
| Раздел меню
| Задача
| Библиотечная команда
| Встроенные жесты
| Наши жесты
| Регулировать доступность?
| File
| New
| ApplicationCommands.New
| Ctrl+N
| Ctrl+N
|
| Open
| ApplicationCommands.Open
| Ctrl+O
| Ctrl+O
|
| Save
| ApplicationCommands.Save
| Ctrl+S
| Ctrl+S
| Да
| Save As
| ApplicationCommands.SaveAs
|
|
|
| Page Setup
|
|
|
|
| Print Preview
| ApplicationCommands.PrintPreview
| Ctrl+F2
| Ctrl+F2
|
| Print
| ApplicationCommands.Print
| Ctrl+P
| Ctrl+P
|
| Exit
|
|
|
|
| Edit
| Undo
| ApplicationCommands.Undo
| Ctrl+Z
| Ctrl+Z
| Да
| Redo
| ApplicationCommands.Redo
| Ctrl+Y
| Ctrl+Y
| Да
| Cut
| ApplicationCommands.Cut
| Ctrl+X
| Ctrl+X
| Да
| Copy
| ApplicationCommands.Copy
| Ctrl+C
| Ctrl+C
| Да
| Paste
| ApplicationCommands.Paste
| Ctrl+V
| Ctrl+V
| Да
| Delete
| ApplicationCommands.Delete
| Del
| Del
| Да
| Find
| ApplicationCommands.Find
| Ctrl+F
| Ctrl+F
|
| Find Next
|
|
| F3
|
| Replace
| ApplicationCommands.Replace
| Ctrl+H
| Ctrl+H
| Да
| Go To
|
|
| Ctrl+G
|
| Select All
| ApplicationCommands.SelectAll
| Ctrl+A
| Ctrl+A
| Да
| Format
| Font
|
|
|
|
| Word Wrap
|
|
| Ctrl+W
|
| Help
| About
|
|
|
|
| Глядя на таблицу, можно сделать следующие выводы для нашего приложения:
- Не все задачи имеют библиотечные команды и часть команд придется создать вручную (такие команды называются пользовательскими или настраиваемыми).
- Не для всех задач нужно регулировать доступность источников, поэтому эти задачи можно оставить как есть, ничего не меняя, поскольку они у нас работают нормально.
- Задачи, которые не имеют библиотечных команд, не требуют регулирования доступности, поэтому их можно оставить как есть и не создавать для них команды. Но мы все-таки их создадим, для тренировки.
- Встроенные жесты библиотечных команд и наши жесты совпадают, мы их так подгадали, поэтому, для тренировки, в задачах, к которым мы применим команды, наши жесты можно удалить (а они заменятся на встроенные)
Недостающие команды нужно создавать в процедурном коде. А вот подключать все команды к источникам и связывать с коллекцией CommandBindings окна, пять же для тренировки, будем и в разметке, и в процедурном коде.
Еще раз выпишем те задачи, которые мы будем реализовывать с помощью команд
План задач, которые предстоит реализовать командами
| Где присоединить к источнику?
| Где привязать к окну?
| Задача
| Библиотечная команда
| Alias (псевдоним)
| Жесты
| Рег?
| Разметка
| Разметка
| Save
| Save
| SaveCommand
| Ctrl+S
| Да
| Разметка
| Разметка
| Page Setup
|
| PageSetupCommand
|
| Нет
| Разметка
| Разметка
| Undo
| Undo
| UndoCommand
| Ctrl+Z
| Да
| Разметка
| Код
| Redo
| Redo
| RedoCommand
| Ctrl+Y
| Да
| Разметка
| Код
| Cut
| Cut
| CutCommand
| Ctrl+X
| Да
| Разметка
| Код
| Copy
| Copy
| CopyCommand
| Ctrl+C
| Да
| Код
| Разметка
| Paste
| Paste
| PasteCommand
| Ctrl+V
| Да
| Код
| Разметка
| Delete
| Delete
| DeleteCommand
| Del
| Да
| Код
| Разметка
| Find Next
|
| FindNextCommand
| F3
| Да
| Код
| Код
| Replace
| Replace
| ReplaceCommand
| Ctrl+H
| Да
| Код
| Код
| Go To
|
| GoToCommand
| Ctrl+G
| Нет
| Код
| Код
| Select All
| SelectAll
| SelectAllCommand
| Ctrl+A
| Да
| Мы выбрали 12 задач, которые хотим реализовать с помощью команд. Эта табличка будет нашим планом для дальнейшей работы.
|