DevExpress MVVM Framework. Coming Soon in v14.1.

WPF Team Blog
23 April 2014

000Adapted from relevant xkcd

There are several free frameworks to help develop MVVM applications. All frameworks are different: some are light and easy to use, others have great capabilities for building a flexible application architecture, others solve typical MVVM problems.

Not long ago, we introduced our MVVM framework. Our framework is both light and easy to study. Our MVVM library contains independent parts, which can be used separately. You can enjoy the following features even while using other third party MVVM libraries.

  • Avoid manually implementing bindable properties with our POCO mechanism without changing anything in your other modules.
  • Easily implement interactions between ViewModels with Messenger.
  • Modify the behavior of any visual component – create a Behavior and assign it with an Interaction.
  • Use our Services mechanism for finer control of any visual component.

These benefits motivated us to release a free version of the DevExpress MVVM Framework. Our MVVM solution easily integrates with DevExpress components and, in general, with any application.

Free MVVM Framework will be available from NuGet, where anyone can use our solutions as easily as possible. We will make the source code publicly available on GitHub, where you can find sources for our main assemblies along with tests and samples to get up and running.

Little specifics on the work done

The Mvvm library will see a minor name change in the new release. In 14.1 we removed the “Xpf” prefix in the assembly name, so ”DevExpress.Xpf.Mvvm.vXX.Y” is now “DevExpress.Mvvm.vXX.Y”. The prefix “Xpf” was also removed from every Mvvm namespace:

DevExpress.Xpf.Mvvm.[…] -> DevExpress.Mvvm.[…]
DevExpress.Xpf.Mvvm.UI.[…] -> DevExpress.Mvvm.UI.[…]

Why did we do this? XPF is a symbiosis between two specific platforms: WPF and Silverlight. Nearly every one of our WPF components is also available in Silverlight with a similar API. The MVVM library was conceived as a library for WPF and Silverlight. We’ve since adopted our library in other projects. For instance, our new demos feature a common ViewModel in two absolutely different platforms: WinForms and WPF. This code base was built with our MVVM Framework.

Despite these changes affecting nearly every WPF/Silverlight project, there’s no need to fear. The 14.1 Project Converter is aware of these changes, so upgrading an existing project to 14.1 will automatically update references and using statements.


Alongside the Free MVVM framework, we’ve enhanced design time support in MVVM solutions and added some exciting new services.
Design Time improvements

DevExpress components provide powerful customization capabilities in the Visual Studio designer. Instant Layout Assistant extends the standard Toolbox and a Smart Tag panel allows for quickly setting the most important properties of controls, assigning icons, and customizing bindings.

In 14.1, we added the capability to define and customize Mvvm components (attached behaviors, EventToComands, services) directly from the Smart Tag.


New NotificationService


The NotificationService service allows showing Windows 8-style notifications as in the top screenshot.

New TaskbarButtonService and ApplicationJumpListService


These services allows you to customize how your application looks in the Windows 8 taskbar and the functionalities available from there.

Other improvements

We also created several small services and behaviors.

  1. DispatcherService performs actions in a ViewModel using the Dispatcher.
  2. FolderBrowserDialogService, OpenFileDialogService, and SaveFileDialogService open file dialogs from a ViewModel.
  3. WindowService opens a View in a separate window from a ViewModel.
  4. FocusBehavior provides an easy way to determine which control should be focused on startup.
  5. ConfirmationBehavior provides a capability to show a message when an end-user performs a certain action.
  6. AsyncCommand is a command with an asynchronous action. AsyncCommands can be automatically generated from a POCO ViewModel.

Improvements in Scaffolding Wizards

  1. We added a capability to edit detail collections (when the LookUpEdit is used).
  2. Automatic change tracking. When an end-user changes some data in a tab, the tab header displays a “*”.
  3. Added the FilterExpression property to the base class for collection ViewModels. With this feature you can set a filter for any module.

Free DevExpress Products – Get Your Copy Today

The following free DevExpress product offers remain available. Should you have any questions about the free offers below, please submit a ticket via the DevExpress Support Center at your convenience. We’ll be happy to follow-up.
Chris Schiefer
Chris Schiefer

Since you are removing the "Xpf" prefix from the namespace, will your MVVM Framework be view independent?  I believe your MVVM Framework today references PresentationCore and PresentationFramework.

23 April 2014
Alexander (DevExpress Support)
Alexander (DevExpress Support)

No, this remains the same. We considered creating a cross-platform library, but it turned out that there are too many things that are included in platform-specific libraries: for instance, our DelegateCommand uses the WPF CommandManager, which is located in PresentationCore.

So, there will be a separate library with a similar API for each platform.

24 April 2014
Justin Etherington 2
Justin Etherington 2

Sounds like some great changes, I presume there will be some blog posts to show the "correct" way to use the new functionality

25 April 2014
Chris Royle (LOB)
Chris Royle (LOBS)

Anyone else snigger when they saw the "New NotificationService" screenshot ?

25 April 2014
Daniel Dacey
Daniel Dacey

This release sounds fantastic. Well done guys.

25 April 2014
Igor Pikovsky
Igor Pikovsky

This is a great move. While we fully embraced your MVVM framework already and replaced Galasoft's one that we previously used, one concern we had was that we were introducing dependency on 3rd party assemblies into our non-presentational components. The fact that you are open-sourcing it undoubtedly would encourage more people to use it. Besides the quality is very good.

On the same lines, it would be great if you could also moved your error-handling interfaces into separate - preferably open-source - assembly. This way it would become possible to incorporate rich error handling and validation at the entity and business logic layers - places where we currently ban inclusion of any presentation-layer references.

6 June 2014
Alexander (DevExpress Support)
Alexander (DevExpress Support)

Thank you very much for your feedback Igor. I also hope that our framework will be really popular, because In my opinion, the product turned out very well.

As for the error-handling, Igor, I do not quite understand what you mean. If you are talking about the IDataErroInfo support in POCO (, then yes, it is sure to be in the free version.

9 June 2014


I can't seem to find how to change the width of the notification provided by your INotificationService. I'd like it to fit its content but apparently I cannot modify this behavior, any idea ?

7 July 2014
Alexander (DevExpress Support)
Alexander (DevExpress Support)


Would you please contact our support team (

It is uncomfortable to discuss such issues here, because I am unable to provide a sample, etc. Please submit a ticket, and we will be happy to assist you.

8 July 2014

Please login or register to post comments.