Log In
Home
Support
Demos
Documentation
Blogs
Training
Webinars
[Expand]Welcome to DevExpress .NET Documentation
[Expand]WinForms Controls
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Collapse]WPF Controls
  Prerequisites
 [Expand]What's Installed
 [Expand]Common Concepts
 [Collapse]MVVM Framework
  [Collapse]ViewModels
    BindableBase
    ViewModelBase
    POCO ViewModels
    Interaction of ViewModels
    Passing data between ViewModels (ISupportParameter)
    ViewModel relationships (ISupportParentViewModel)
  [Expand]Commands
  [Expand]Behaviors
  [Expand]Services
  [Expand]DXBinding
  [Expand]MIF
   Converters
   ViewLocator
   Messenger
   Data Annotation Attributes
   LayoutTreeHelper
   Weak Event
 [Expand]Controls and Libraries
 [Expand]Scaffolding Wizard
 [Expand]Localization
  Redistribution and Deployment
  Get More Help
 [Expand]API Reference
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Document Server
[Expand]Reporting
[Expand]Report Server
[Expand]Dashboard
[Expand]eXpressApp Framework
[Expand]CodeRush
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation

Interaction of ViewModels

An application's architecture depends on the degree of connection between its modules. For instance, in small applications, View Models may know about other View Models (View Models can create other View Models, set their properties or handle events). This architecture type is tightly-coupled. This is a good and clear one, if you develop an application alone or in a small team.

However, if you develop a large application, then the tightly-coupled architecture is not suitable, because any change may break the whole system. The loosely-coupled architecture solves this issue. It implies many scattered modules, operating without awareness of each other. Ideally, modules are the building blocks of an adaptive design. In turn, modules can be built with the tightly-coupled architecture. This allows you to easily support and improve your application, because adding or removing functionality simply means registering or unregistering a specific module, without concern about any other module.

When developing applications using the loosely-coupled View Models architecture, it is necessary to organize interaction between modules. DevExpress MVVM Framework provides several capabilities for this purpose (see the below list).

Is this topic helpful?​​​​​​​