From a XAML perspective:<p>The ViewModel just adapts various Models&#x2F;Services for a particular View. It converts types provided by the Model as needed, formats strings, computes progress, etc.<p>&quot;UI independent&quot; just means that it should be a logical model of the View, rather than a visual model (e.g., don&#x27;t expose Color or Brush properties, instead expose properties like IsSelected).  So think of the View model like logical code-behind.<p>&gt; Modern frameworks are moving away from two-way data binding (React, Angular 2.0, Ember, etc.)<p>On the web, maybe. But Windows apps (UWP) are still based on data binding.