windows phone school hse lecture 5
DESCRIPTION
Windows Phone HSE courseTRANSCRIPT
![Page 1: Windows Phone School HSE Lecture 5](https://reader035.vdocuments.site/reader035/viewer/2022062419/557effb1d8b42af44a8b4cd2/html5/thumbnails/1.jpg)
Школа разработчиков Windows Phone
![Page 2: Windows Phone School HSE Lecture 5](https://reader035.vdocuments.site/reader035/viewer/2022062419/557effb1d8b42af44a8b4cd2/html5/thumbnails/2.jpg)
Занятие №5
Advanced XAML & MVVM
![Page 3: Windows Phone School HSE Lecture 5](https://reader035.vdocuments.site/reader035/viewer/2022062419/557effb1d8b42af44a8b4cd2/html5/thumbnails/3.jpg)
Resourses
• Общие куски XAML-кода• Необходимы для общей стилизации
![Page 4: Windows Phone School HSE Lecture 5](https://reader035.vdocuments.site/reader035/viewer/2022062419/557effb1d8b42af44a8b4cd2/html5/thumbnails/4.jpg)
Style
• Заранее задаем свойства в объекте• Можем применять как к отдельному
объекту, так и к целому классу объектов
![Page 5: Windows Phone School HSE Lecture 5](https://reader035.vdocuments.site/reader035/viewer/2022062419/557effb1d8b42af44a8b4cd2/html5/thumbnails/5.jpg)
Неявные стили
• Если не указывать x:Key, то Style становится неявным и действует на весь класс
![Page 6: Windows Phone School HSE Lecture 5](https://reader035.vdocuments.site/reader035/viewer/2022062419/557effb1d8b42af44a8b4cd2/html5/thumbnails/6.jpg)
DataBinding
• Простой и очень мощный инструмент привязки данных, позволяющий получить данные и показать их в XAML
• Привязка – расширение разметки в коде элемента
![Page 7: Windows Phone School HSE Lecture 5](https://reader035.vdocuments.site/reader035/viewer/2022062419/557effb1d8b42af44a8b4cd2/html5/thumbnails/7.jpg)
Как реализовано?
![Page 8: Windows Phone School HSE Lecture 5](https://reader035.vdocuments.site/reader035/viewer/2022062419/557effb1d8b42af44a8b4cd2/html5/thumbnails/8.jpg)
Как применять?
• DataContext• DataTemplate
![Page 9: Windows Phone School HSE Lecture 5](https://reader035.vdocuments.site/reader035/viewer/2022062419/557effb1d8b42af44a8b4cd2/html5/thumbnails/9.jpg)
DataContext
• Свойство, которое позволяет искать источник данных в иерархии элементов XAML
![Page 10: Windows Phone School HSE Lecture 5](https://reader035.vdocuments.site/reader035/viewer/2022062419/557effb1d8b42af44a8b4cd2/html5/thumbnails/10.jpg)
DataTemplate
• DataTempate для списковых элементов
![Page 11: Windows Phone School HSE Lecture 5](https://reader035.vdocuments.site/reader035/viewer/2022062419/557effb1d8b42af44a8b4cd2/html5/thumbnails/11.jpg)
Типы привязки
![Page 12: Windows Phone School HSE Lecture 5](https://reader035.vdocuments.site/reader035/viewer/2022062419/557effb1d8b42af44a8b4cd2/html5/thumbnails/12.jpg)
Связывание элементов
• С помощью дополнения ElementName можно связывать два свойства разных элементов
![Page 13: Windows Phone School HSE Lecture 5](https://reader035.vdocuments.site/reader035/viewer/2022062419/557effb1d8b42af44a8b4cd2/html5/thumbnails/13.jpg)
MVVM
• Шаблон проектирования, являющий модификацией паттерна MVC для фреймворков, использующий DataBinding
• Используется для разделения представления(View, UI) от логики (Model), связывания данных между этим слоями
![Page 14: Windows Phone School HSE Lecture 5](https://reader035.vdocuments.site/reader035/viewer/2022062419/557effb1d8b42af44a8b4cd2/html5/thumbnails/14.jpg)
Из чего состоит?
• View – графический интерфейс, UI• Model – данные приложения, бизнес-
логика• ModelView - слой, поставляющий данные в
удобном для представления формате и обновляет модель, что освобождает представление от необходимости взаимодействия с моделью
![Page 15: Windows Phone School HSE Lecture 5](https://reader035.vdocuments.site/reader035/viewer/2022062419/557effb1d8b42af44a8b4cd2/html5/thumbnails/15.jpg)
Как это работает?
![Page 16: Windows Phone School HSE Lecture 5](https://reader035.vdocuments.site/reader035/viewer/2022062419/557effb1d8b42af44a8b4cd2/html5/thumbnails/16.jpg)
Для чего нужно?
• Полное отделение представления от модели
• Удобное взаимодействие между частями приложения
• Полное использование возможностей DataBinding
• Упрощение логики
![Page 17: Windows Phone School HSE Lecture 5](https://reader035.vdocuments.site/reader035/viewer/2022062419/557effb1d8b42af44a8b4cd2/html5/thumbnails/17.jpg)
Когда использовать?
• Для средних/больших проектов• При наличии сложных моделей и
представлений
![Page 18: Windows Phone School HSE Lecture 5](https://reader035.vdocuments.site/reader035/viewer/2022062419/557effb1d8b42af44a8b4cd2/html5/thumbnails/18.jpg)
Как выглядит в проекте?
![Page 19: Windows Phone School HSE Lecture 5](https://reader035.vdocuments.site/reader035/viewer/2022062419/557effb1d8b42af44a8b4cd2/html5/thumbnails/19.jpg)
С помощью чего реализовать?
• MVVM Light (http://mvvmlight.codeplex.com/• Simple MVVM Toolkit (
http://simplemvvmtoolkit.codeplex.com/)• ect
![Page 20: Windows Phone School HSE Lecture 5](https://reader035.vdocuments.site/reader035/viewer/2022062419/557effb1d8b42af44a8b4cd2/html5/thumbnails/20.jpg)
Полезные топики
• http://blog.tattoocoder.com/2012/07/getting-started-with-windows-phone-and.html
• https://channel9.msdn.com/Forums/TechOff/A-very-simple-implementation-sample-of-MVVM-for-the-Windows-Phone
• http://www.geekchamp.com/articles/windows-phone-mango-getting-started-with-mvvm-in-10-minutes
![Page 21: Windows Phone School HSE Lecture 5](https://reader035.vdocuments.site/reader035/viewer/2022062419/557effb1d8b42af44a8b4cd2/html5/thumbnails/21.jpg)
Q&A