In the first half of 2017 we implemented a WPF project for one of our customers. The aim of the project was to develop a Surface Pro compatible desktop application for data collection in context of civil engineering. The application allows the user to create, save, edit and export protocols of specific buildings. Furthermore it’s possible to create a PDF document out of the protocol data.
Because most of the workstations at our customer are still on Windows 7 and UWP is not compatible with Windows 7 we decided to use WPF instead of UWP to implement that desktop application. Additionally most of our self developed libraries that provide utility functionalities are not yet compatible/usable with UWP.
After finishing the project I decided to start a blog post series about WPF. In this series I’ll address a few important topics I covered during development. Below you find an overview about the topics treated in this series. The idea behind writing this series is to provide solutions for problems and challenges we had to solve throughout this project. At the same time the series will act as a knowledge base for ourselves.
Overview about the topics
- Project Setup
- WPF Application Design
- MVVM Pattern
- MahApps.Metro and MahApps.Metro.Resources
- Binding ComboBox or ListBox to Enum
- Globalization of Enums
- ViewModel Validation using DataAnnotations
- InkCanvas with initial StrokeCollection
- Custom MetroDialog
- Global Exception Logging
- Advanced Installer