WPF Series -10- InkCanvas with initial StrokeCollection

One of the requirements our WPF project had to meet describes the ability to create a sketch of the sewage shaft for which data is collected. The functional acceptance criteria are the following. There has to be an area on the form to create a sketch of the sewage shaft using Surface Pen, touchscreen or […]

WPF Series -9- CustomListBox

When we used ListBox controls in our WPF project we faced the same problem as described in the previous post. Like DataGrid, ListBox control also has a property called SelectedItems, which isn’t a dependency property and therefore not bindable too. This post shows how ListBox control can be extended with a bindable version of the […]

WPF Series -8- CustomDataGrid

According to MVVM pattern the ViewModel interacts with the Model but doesn’t know anything about its View. As a result dependency properties of controls get bound to ViewModel properties by specifying bindings in the corresponding View (XAML). DataGrid control has a property called SelectedItems, which in multi selection mode holds the items that are selected. […]

WPF Series -7- ViewModel Validation using DataAnnotations

As we often use Data Annotations for basic validation purposes in context of C#/.NET applications (i.e. required, max length, …), we searched for a solution that allows using Data Annotations in WPF ViewModels for client side validation. Fortunately we found such a solution, which I would like to describe in this blog post. Implement IDataErrorInfo […]

[HOWTO] React to Unhandled Exceptions in UWP

While developing an UWP application I wanted to log unhandled exceptions. My coach mentioned that in WPF you can register a exception handler to handle unhandled exceptions globally. In UWP it works exactly the same way. Add Unhandled Exception Handler NOTE: This solution does not prevent your app from crashing and exiting. This solution only […]

WPF Series -6- Globalization of Enums

In the previous blog post of this series I wrote about binding ComboBox or ListBox to an enum. Using just the approach described there exposes the enum values directly in the corresponding ComboBox or ListBox. Because the enum values do not always have descriptive names or because they are language specific, it’s usually more appropriate […]

WPF Series -5- Binding ComboBox or ListBox to Enum

In our WPF application we wanted to bind ComboBox and ListBox controls to enums. The WPF way to set up such a binding is described here. This solution works absolutely fine but it requires the definition of an ObjectDataProvider for every enum. This in turn leads to lower maintainability and the code is not reusable. […]

WPF Series -4- MahApps.Metro and MahApps.Metro.Resources

To have a modern look and feel we decided to align our WPF application to Microsoft Metro style. To achieve this, we used the open source toolkit MahApps.Metro. MahApps.Metro is a toolkit for creating Metro / Modern UI styled WPF applications. The MahApps.Metro project was started back in 2011 by Paul Jenkins. The source is […]

WPF Series -3- MVVM Pattern

As mentioned in the previous post of this series the WPF application we implemented follows the MVVM pattern. MVVM stands for Model-View-ViewModel. The MVVM patterns intent is to provide a clean separation of concerns between UI and the business logic. It can be used on all XAML platforms. About MVVM Pattern Microsoft describes the motivation […]

WPF Series -2- WPF Application Design

Beside the vision and the requirements you also have to have an idea how the WPF application should look like in the end. For that purpose we created a few mock ups during first exchange with the customer in the early stages of the project. In the same stage we also created a process diagram […]