Краткий анализ задачи
Теперь будем модифицировать этот проект, подгоняя его под использование механизма команд. Но прежде проведем ревизию библиотечных команд, возможно не все из них закрывают наши источники и часть команд придется создавать самим. За основу возьмем источники меню, поскольку там наиболее полно представлены задачи нашего приложения. Интересующие нас библиотечные команды находятся в классе 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 | ||
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 задач, которые хотим реализовать с помощью команд. Эта табличка будет нашим планом для дальнейшей работы.
Дата добавления: 2015-04-15; просмотров: 675;