Programming with WPF
Developing user interfaces with Windows Presentation Foundation (WPF) is the core of this training course. Good software is characterised by a good user interface and user guidance – and that is exactly what participants learn here.
They gain a comprehensive overview of WPF techniques up to the MVVM architectural pattern and put their knowledge into practice with simple and more demanding exercises. At the end of the workshop, they will be able to create WPF applications independently.
Suitable for
- Software architects
- Software designers
- Software developers
Prior knowledge
- C#
Format and duration
- 3 days
- Online, conveniently from home
- In our training rooms in Freiburg
- At your premises - only possible from a minimum number of participants
Dates
- Currently on request
Participant materials
- Laptop
- Visual Studio 2026 or 2022 (the Community Edition is sufficient)
- Current .NET SDK (.NET 8 or later)
- Writing materials
Training room
- Projector
- Whiteboard, blackboard or flipchart
Contents of the 3-Day Training: WPF
Day 1
- Overview of day 1
- Introduction
- WPF project templates
- Files of a WPF application
- A first example
- Logical and visual tree
- Exercise
- XAML
- Structure of a XAML file
- Setting properties and type conversion
- Markup extensions
- XAML namespaces
- Exercise
- Layout containers
- Grid, StackPanel, DockPanel and others
- Nesting layout containers
- Exercise
- Controls
- Important properties
- The most important controls
- Exercise
- Outlook on day 2
Day 2
- Review (training day 1)
- Overview of day 2
- Events
- Registering event handlers
- Routing strategies
- Example: mouse events
- Exercise
- Resources
- Binary and logical resources
- Resource dictionaries
- Styles
- Typed and untyped styles
- Extending styles (BasedOn)
- Exercise
- Triggers
- Property and data triggers
- Multi-triggers
- Event triggers
- Templates
- ControlTemplates
- DataTemplates
- Exercise
- Outlook on day 3
Day 3
- Review (training day 2)
- Overview of day 3
- Data binding
- The Binding class
- Converters and validation
- Binding lists with ObservableCollection<T>
- Exercise
- Architecture with MVVM
- Model, View and ViewModel
- INotifyPropertyChanged
- Commands with ICommand
- Exercise
- Globalisation and localisation
- Multilingual user interfaces
- Independent exercises
- Conclusion
