[Expand]General Information
[Expand]WinForms Controls
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Collapse]WPF Controls
 [Expand]What's Installed
 [Expand].NET Core 3 Support
 [Expand]Common Concepts
 [Collapse]MVVM Framework
  [Collapse]View Models
    POCO ViewModels
    Interaction of ViewModels
    Passing Data Between ViewModels (ISupportParameter)
    ViewModel relationships (ISupportParentViewModel)
   Data Annotation Attributes
   Weak Event
 [Expand]Controls and Libraries
 [Expand]Scaffolding Wizard
  Redistribution and Deployment
  Get More Help
 [Expand]API Reference
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Report and Dashboard Server
[Expand]eXpressApp Framework
[Expand]eXpress Persistent Objects
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
View this topic on docs.devexpress.com (Learn more)

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 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?​​​​​​​