Catel is an application toolkit with the focus on MVVM, and consists of two basic pillars and extensions:
Catel.Core contains an IoC container, data objects, validation, memento, message mediator, argument checking, etc. This can be used in any application and is not specific for Windows applications.
Catel.MVVM contains all the MVVM classes such as ViewModelBase, Command, services, etc.
Catel also provides extensions such as Controls, FluentValidation and Prism.
The release cycle is very short (4 weeks), so all found features and bugs are solved within 4 weeks.If you are not convinced yet, take a look at the
MVVM comparison sheet and you will be convinced.
Donations are welcome
Writing and supporting Catel takes time, lots of time. To thank the team, you can donate some money which we will use to buy a beer in the weekends:
YES, I WOULD LIKE TO MAKE A DONATION
Follow us on Twitter
You can follow us on twitter:
@CatelMvvm
Latest blog posts
Looking for examples?
The examples are located in a separate repository at
http://catelexamples.codeplex.com.
Core
The core library of Catel contains some very useful classes, even when not developing anything with MVVM (but, for example, a website):
- Argument class (always check your input, now easy with Argument.IsNotNull("argument", argument), etc)
- IoC container (with extented support for Unity, MEF, Ninject, Windsor, etc)
- Memento pattern
- MessageMediator (mediator pattern)
- WeakEventListener (no more memory leaks, works for all target frameworks)
MVVM
The MVVM framework includes the following features that differs this project from other frameworks:
- Communication with other view models via simple attributes, no messengers needed (but still, a MessageMediator is available)
- Solves the nested user controls problem in MVVM, view models are created on the fly when needed based on the datacontext
- UserControl<TViewModel> and DataWindow<TViewModel> that are fully compatible with the MVVM framework and easy to use

Of course, the framework also implements the features you can find in any MVVM framework:
- ViewModelBase with INotifyPropertyChanged, IDataErrorInfo, INotifyDataErrorInfo support
- Command (a.k.a. RelayCommand)
- EventToCommand and lots of other behaviors
- View Model Services such as the IMessageService, IPleaseWaitService, IUIVisualizerService, etc
- Design-time data support
Articles and blog posts
There are several article s available about Catel. The articles are posted on The Code Project:
Need help or consultancy?
If you need help, don't hesitate to create a new discussion. If you need more advanced help, we are also
available for consultancy!
Sponsors
Available languages