The DevExpress MVVM Framework allows you to utilize the Model-View-ViewModel design pattern in WPF applications.
The Model-View-ViewModel (MVVM) architectural design pattern divides your application into three layers.
Model - defines the data and business logic.
View - specifies the UI, including all visual elements (buttons, labels, editors, etc.) bound to properties and commands in the ViewModel.
ViewModel - contains the logic that connects the View and the Model.
The diagram below illustrates these layers and how they interact.
The MVVM pattern grants you multiple benefits, such as a more independent development process for both developers and designers, easier code testing or simpler UI redesigning. Refer to this MSDN article for more information about this pattern.
You can use the DevExpress MVVM Framework and DevExpress WPF Controls separately. The DevExpress WPF Controls can be used with any MVVM framework.
This documentation section contains the following topics that describe features of the DevExpress MVVM Framework.
Module Injection Framework (MIF) is a set of classes that allow you to organize an MVVM application.
The DevExpress MVVM Framework provides the following components to simplify application development:
Converters. A set of extended value converters that allow you to perform conversions between different types and between values of the same type.
ViewLocator. Provides a composition mechanism that enables you to locate Views by their type names.
Messenger. Allows you to implement a message exchange between modules.
Data Annotation Attributes Support. Data annotation attributes are used to customize data classes, to specify how data is displayed from a data source, define validation rules, and set relationships between data classes.
LayoutTreeHelper. Provides an API for searching nodes and iterating through logical and visual trees' elements.
Weak Event. Allows you to declare events that do not need to be unregistered and do not cause memory leaks. These events are used to implement the interaction between different application modules (for example, data services and view models) and objects that exist throughout the application's lifecycle.
Was this page helpful?
Thanks for your feedback! Any other suggestions? Tell us here.