Главная страница
Случайная страница
КАТЕГОРИИ:
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Краткий анализ задачи
Теперь будем модифицировать этот проект, подгоняя его под использование механизма команд. Но прежде проведем ревизию библиотечных команд, возможно не все из них закрывают наши источники и часть команд придется создавать самим. За основу возьмем источники меню, поскольку там наиболее полно представлены задачи нашего приложения. Интересующие нас библиотечные команды находятся в классе 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 задач, которые хотим реализовать с помощью команд. Эта табличка будет нашим планом для дальнейшей работы.
|