Your SlideShare is downloading. ×
9. XAML & WPF - WPF and Databases
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.


Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

9. XAML & WPF - WPF and Databases


Published on

WPF and Databases …

WPF and Databases
Telerik Software Academy:
The website and all video materials are in Bulgarian.

Data Access Layer
Accessing the Data Layer
Master Detail
Data Persister
WPF and Databases

Published in: Technology

1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. WPF and Databases LINQ-to-Entities, Data Persisters, Master DatailDoncho MinkovTechnical Trainerhttp://www.minkov.itTelerik Software
  • 2. Table of Contents Data Access Layer  Linq-to-Entities  Linq-to-XML Accessing the Data Layer  DataContext Master Detail Data Persister Paging WPF and Databases
  • 3. Data Access Layer
  • 4. Data Access Layer The Data Access Layer is a essential  Used for access to the database Class Library with single EntityModel class This way we can use the same DAL with many applications
  • 5. Data Access Layer Live Demo
  • 6. Accessing the Data Layer
  • 7. The DataContext When adding a reference to the DAL project  We can instantiate an entity model in the XAML  And set it for DataContext <Window … xmlns:datalayer=" clr-namespace:NorthwindDataLayer;assembly= NorthwindDataLayer"> <Window.DataContext> <datalayer:NorthwindEntities /> </Window.DataContext>
  • 8. Accessing DAL After instantiating the EntityModel we can simply bind some of the entities to a ItemCollection  ListBox, ListView, TreeView, etc. <TreeView x:Name="TreeViewCategories" ItemsSource="{Binding Categories}"> In MVVM it is not possible to access the DAL directly  Done through the ViewModel  In MVVM we need a DataPersister object
  • 9. Accessing the Data Layer Live Demo
  • 10. Master Detail
  • 11. Master Detail What is Master Detail?  When selecting a Category  Show category info  Show products in this category<ListView Name="ListViewFamilies" ItemsSource="{Binding}" DisplayMemberPath="FamilyName"/><ListView DisplayMemberPath="Name" ItemsSource="{Binding ElementName=ListViewFamilies, Path=SelectedItem}"/>
  • 12. Master Datail in MVVM Consider we have the property Categories in the ViewModel  Somehow it gets data from the Model  Since Categories is a IEnumerable we can get its ICollectionView  Now we got the CurrentItem  Can make property Products that returns the products of the CurrentItem
  • 13. Master Detail Live Demo
  • 14. Data PersisterThe way to collect information
  • 15. What is a Data Persister? The Data Persister is the object that gives data to the Model  Sometimes it is merged with the Model  It could be an EntityDataModel  It could be a Linq-to-XML object  It could just an object we created How the Data Persister helps?  Easier for mocking (unit testing)  Better reusability
  • 16. The DataPersister The DataPersisteris the class that makes the connection with the Data (RDB, XML or object)  Responsible for the CRUD  May have validation With this object the Model is pretty clean  Almost no programming logic  Loose coupling
  • 17. Data Persister Live Demo
  • 18. PagingWhat is paging and why we need it?
  • 19. What is Paging? A memory-management scheme  A computer can store and retrieve data from secondary storage for use in main memory With paging the applicationretrieves data from secondary storage in same-size blocks called pages Why use paging?  Imagine a Database with over a million records  Store them in the dynamic memory at once?  Or take them by pieces with 100 records?
  • 20. Paging TODO
  • 21. PagingLive Demo
  • 22. WPF and Databases With MVVM
  • 23. WPF and Databases Consider the usual case  You have categories with products in a Database  CRUD operations should be implemented You have the following:<Grid DataContext="{Binding Person}"> <TextBox Text="{Binding Name}"/> <TextBox Text="{Binding Age}"/></Grid> When selecting the DataContext of the Grid  You get a Person object
  • 24. Categories Editor Live Demo
  • 25. WPF and Databases курсове и уроци по програмиране, уеб дизайн – безплатно BG Coder - онлайн състезателна система - online judge курсове и уроци по програмиране – Телерик академия форум програмиране, форум уеб дизайн уроци по програмиране и уеб дизайн за ученици ASP.NET курс - уеб програмиране, бази данни, C#, .NET, ASP.NET програмиране за деца – безплатни курсове и уроци ASP.NET MVC курс – HTML, SQL, C#, .NET, ASP.NET MVC безплатен SEO курс - оптимизация за търсачки алго академия – състезателно програмиране, състезаниякурсове и уроци по програмиране, книги – безплатно от Наков курс мобилни приложения с iPhone, Android, WP7, PhoneGap уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop Дончо Минков - сайт за програмиране free C# book, безплатна книга C#, книга Java, книга C# Николай Костов - блог за програмиране безплатен курс "Качествен програмен код" безплатен курс "Разработка на софтуер в cloud среда" C# курс, програмиране, безплатно
  • 26. Exercises1. Create a database holding continents, countries and town. Countries have name, language, population and continent. Towns have name, population and country. Implement a WPF application that shows the continents in a ComboBox, countries in a ListView and the towns in a ListView and allows master-detail navigation. Use Entity Framework. Use paging and sorting for the long lists.2. Implement add / edit / delete for the continents, countries, towns and languages. Handle the possible errors accordingly. Implement validation logic. 26
  • 27. Exercises (2)3. Add a flag for each country which should be a PNG image, stored in the database, displayed along with the country data. Implement "change flag" functionality by uploading a PNG image. 27
  • 28. Free Trainings @ Telerik Academy Desktop Applications with C# and WPF  Telerik Software Academy  Telerik Academy @ Facebook  Telerik Software Academy Forums 