PixiEditor's GUI
MVVM
When building the GUI we use MVVM whenever possible. This means that the GUI is defined in .xaml files, and it uses bindings to retrive data from ViewModels. The main advantage of using bindings is that you don't have to write any code that directly updates the GUI. Instead, it gets updated automatically whenever it's corresponding property in the ViewModel is updated.
The alternative here is to update the UI controls manually from the code behind (.xaml.cs files). We try to avoid doing this whenever possible, but some things are easier to implement this way instead of using bindings. This is only okay to do in isolated parts of the code, like user controls, custom controls, or dialogs.