For Windows desktop applications, Windows Presentation Foundation ie. WPF is the way to go nowadays. Old Windows Forms is still feasible solution for simpler applications, which don't need scalable controls and superior graphics. WPF has interesting third party docking libaries and here we will study one of them, AvalonDock.
This repository includes 18 projects, which are tutorials for both WPF messaging mechanisms and AvalonDock. We have three different ways to send messages or handle events between UI and code behind in WPF: DependencyProperty, INotifyPropertyChanged and Dispatcher. I'll show how to use DependencyProperty, INotifyPropertyChanged and Dispatcher with AvalonDock. There's also one example of IObservable / IObserver use.
It is important to understand WPF MVVM (Model, View, ViewModel) pattern when using WPF. This is not a tutorial for MVVM, so if you are not familiar with it, you should introduce yourself with it elsewhere. Actually, even when I use names like view and viewmodel here, they have nothing to do with MVVM pattern!
This repository has 18 projects licensed under the MIT License.