Слайд 2Задача
Предоставлен программный модуль, осуществляющий модификацию и конвертацию документации форматов CHM и HTML.
Разработать:
Графический интерфейс для данного модуля.
Формат файлов проекта.
Слайд 3Проектирование интерфейса
1 этап:
Описание сценариев работы пользователей.
Одно из достоинств:
проблема юзабилити на ранней стадии
изучена.
2 этап:
Построение протопов интерфейса:
бумажные протипы и прототипы, построенные с помощью Microsoft Expression Blend + SketchFlow.
Слайд 4Реализация интерфейса
Выбран способ организации графического интерфейса приложений в отдельных окнах (Single document
interface) в силу простоты реализации его и подходящей модели поведении.
Графический интерфейс построен на очень простом и одновременно очень мощном паттерне проектирования клиентских приложений DataModel-View-ViewModel.
Слайд 5Model View ViewModel (MVVM)
Модель(Model) отвечает за бизнес-логику и управление состоянием объекта.
Представление
(View) отвечает только за отрисовку элементов графического интерфейса.
ViewModel не содержит ссылок на вид:
связывания между View и ViewModel становятся возможными потому, что экземпляр ViewModel задается в View как DataContext.
Самый важный момент WPF, делающий MVVM очень удобным шаблоном – это инфраструктура привязки данных:
за счет привязки свойств представления к модели представления получается слабое связывание этих компонентов
Слайд 6MVVM: оповещение
Когда какое-либо свойство модели изменяется: новое значение автоматически передается в представление
через механизм связывания данных.
Модель должна реализовывать интерфейсы INotifyPropertyChanged или INotifyCollectionChanged.
Слайд 7Базовый класс для представлений
Все наследуемые классы представляют собой отдельные представление.
Благодаря наследуемому интерфейсу
INotifyPropertyChanged представления оповещают модели данных об изменениях и событиях.
IActivable позволяет представлению задавать поведение, когда оно добавляется и удаляется из визуального дерева.