WPF, data binding, controls, layouts, styles, templates, resources, MVVM

Programming Desktop Applications with WPF

Do you want to create applications for the desktop, need to support Windows 7 but still want to create your application in a way that they are fit for the future? This is the best workshop for you!

WPF is the preferred technology to create desktop applications for the Windows system if you need to support operating systems older than Windows 10. You learn how to create applications making use of XAML for a nice and flexible user interface, create dialogs with validation, store data in the database and call API services.

With this workshop you not only learn how to implement WPF applications, but doing it in a way to share as much code as possible if you add other UI technologies such as the Universal Windows Platform (UWP) or Xamarin.Forms.

Content

  • WPF Foundations
  • Controls and Layouts
  • Data Binding and Validation
  • Styles, Resources, Templates, Animations
  • MVVM Pattern
  • Documents
  • Desktop App Converter

WPF Foundations

We start with an introduction to WPF, advantages to other technologies, as well as the goals that brought this technology. With WPF, .NET event handling has been enhanced - you learn about tunneling and bubbling, as well as weak events. With XAML you learn about foundations such as dependency properties, markup extensions (also creating custom ones) and more.

Controls and Layouts

Here you learn about different kind of controls such as content controls, items controls, and controls with headers, defining the layout using the mighty Grid, as well as StackPanel, WrapPanel, DockPanel, making some drawings within a Canvas control, and more.

Data Binding and Validation

Data binding is really mighty with WPF - you learn the foundations of data binding, and also binding with master-detail, PriorityBinding, multi-binding, as well as converters, data template selectors... The CollectionView allows for filtering and sorting, you can also navigate through records, learn about change notification and validation with INotifyDataErrorInfo.

Styles, Resources, Templates, Animations

The UI of WPF can be customized by defining styles, and defining styles and instantiating objects within resources. Templates allow for complete customization of controls. You learn how buttons and items controls can be completely customized.

MVVM Pattern

If the application is not just really small, the MVVM pattern (Model View View-Model) gives independence between XAML and C#, and allows for easier unit testing, as well as code-reuse with other platforms, such as the Universal Windows Platform and Xamarin. Here you learn creating WPF applications using the MVVM pattern which also includes dependency injection containers, event aggregators, commands, and more.

Documents

A XPS document is defined using a subset of WPF. WPF not only gives easy ways to create XPS documents, but also defines flow documents. Here you learn about flow and fixed documents, as well as printing.

Desktop App Converter

The Desktop App Converter allows converting desktop applications to UWP. Here you learn the advantages you get with this conversion, what functionality is covered, how you can enhance your applications after they are converted, and what cannot be done.

Summary

Creating Desktop Applications with WPF gives you the skills to create rich applications for the desktop, use XAML to define nice looking user interfaces. This workshop gives you all the information needed to get started. Depending on wishes from the attendees, additional topics can be added. For example, often topics such as accessing the database using Entity Framework, or calling Web API services are requested. I like to fulfill the wishes of the course attendees depending on the time constraints.

Flexible Content

This workshop is offered as company-based workshop and occasionaly with open course dates. I'm flexible in adapting this workshop to your specific needs. Get in contact to discuss the knowledge you already have and the goals of your project.

Interested in this workshop?