651.288.7000 info@intertech.com




Live Online


Oct 25/2021 - Oct 29/2021



Complete Windows Presentation Foundation (WPF) with MVVM

Course ID: INT1142

Duration: 5 Days
Contact Intertech To Schedule



Intertech’s Complete Windows Presentation Foundation (WPF) with MVVM course will examine this key API beginning with the topics of XAML, code files and WPF development tools.  In the WPF tools, the separation of concerns technique provided by Model-View-ViewModel (MVVM) design pattern will be explored.  Attendees will learn about the WPF control content model, styles and control templates, data binding, graphical rendering services and the construction of navigationally-based applications. During the application development the use of unit tests to support Test Driven Development will be examined.  As well, attendees will gain hands on experience using both Visual Studio and Blend for Visual Studio to build WPF applications.

Learning Objectives

  • Understand the WPF programming model with and without XAML
  • Understand the purpose of the MVVM design pattern
  • Build new XAML applications with the MVVM design pattern
  • Make use of Unit Tests to validate the application development efforts
  • Learn to build custom user controls
  • Work with WPF data binding
  • Work with animation and graphical rendering
  • Learn to use Blend for Visual Studio to build WPF user interfaces


This class is intended for experienced .NET 4.0 software developers. No knowledge of WPF is assumed. If you need to learn the fundamentals of .NET, you may be interested in Intertech’s C# Training, VB.NET Training or ASP.NET Training


Understanding of Object Oriented Programming using C# or VB .NET 4.0 development experience


Course outline

Introducing WPF

  • Understand the motivation behind WPF
  • Examine the various ‘flavors’ of WPF applications
  • Overview the services provided by WPF
  • Examine the core WPF assemblies and namespaces
  • Work with the Window and Application class types
  • Learn the syntax of XAML
  • Understand the XAML / code relationship


The Intent of the MVVM Design Pattern

  • Examine some limitations of a typical tightly-coupled GUI application
  • Know the pros and cons of the MVVM design pattern
  • Know the responsibilities of the Model
  • Know the responsibilities of the ViewModel
  • Know the responsibilities of the View
  • Explore the structure of an Blend Databound project template
  • Examine the use of Unit Tests and Refactoring with MVVM


The Core MVVM Design Pattern

  • Implement a custom data model
  • Build a custom ViewModel class
  • Know the role of the iNotifyPropertyChanged interface
  • Create “code free” View objects
  • Connect a View to the ViewModel via XAML
  • Build a WPF application using the core pieces of the MVVM design pattern


WPF Controls

  • Survey the core WPF control types
  • Review the WPF control programming model
  • Learn to position controls using layout managers
  • Understand the role of WPF control commands
  • Work with the WPF Ink API
  • Use Microsoft Expression Blend to build user interfaces


WPF Document Controls

  • Understand the scope of the WPF documents API
  • Distinguish between fixed documents and flow documents
  • Populate a document with inline and block elements
  • Work with the WPF document APIs
  • Configure document controls using Blend


WPF Graphical Rendering Services

  • Understand the scope of WPFs graphical rendering services
  • Work with the Shape types
  • Work with Brushes and Pens
  • Apply graphical transformations
  • Understand the role of geometries and drawings
  • Work with the visual programming layer
  • Work with the Blend graphical toolkit


WPF Resource Management

  • Learn to manage binary resources
  • Understand the role of logical resources
  • Work with resources in XAML and procedural code
  • Work with resource dictionaries
  • Understand the resource lookup mechanism
  • Know the role of dynamic resources
  • Learn how to make use of system resources
  • Use Microsoft Expression Blend to manage logical resources


WPF Styles

  • Learn how to define and apply WPF styles
  • Learn to limit where a style can be applied
  • Build new styles based on existing styles
  • Understand the use of triggers
  • Define control styles using Blend


WPF Animation Support

  • Understand the scope of WPF’s animation services
  • Define animations in code and XAML
  • Work with linear interpolation animations
  • Work with key-frame-based animations
  • Work with path-based animations
  • Implement hit testing and drag-and-drop functionality
  • Creating animations using the Blend IDE


WPF Templates and User Controls

  • Understand the relationship between WPF logical and visual trees
  • Learn to build custom control templates
  • Build templates which make use of triggers
  • Work with the .NET 4.0 Visual State Manager
  • Create custom UserControls
  • Understand the ContentPresenter class
  • Understand the TemplateBinding markup extension
  • Understand the role of dependency properties
  • Understand the role of routed events
  • Generate UserControls from graphical content using Blend


WPF Data Binding

  • Understand the role of WPF data binding
  • Understand control-to-control data binding
  • Learn to work with data bindings in XAML and code
  • Learn the role of the IValueConverter interface
  • Learn to bind to custom collections of objects
  • Learn the role of the INotifyPropertyChanged interface
  • Define and make use of data templates
  • Create data validation logic
  • Examine the data binding support within Expression Blend


Communication Between the MVVM Layers

  • Use data binding to pass View data to the VM
  • Understand the roll of custom command objects
  • Know the distinction between the Action<> and Func<> delegates
  • Create custom command objects which communicate with the ViewModel
  • Bind UI objects to custom command objects
  • Examine ways to handle UI state changes (enabling / disabling of controls, etc)

Back to Top