Unlike the Presenter in MVP, a ViewModel does not need a reference to a view. The view binds to properties on a ViewModel, which, in turn, exposes data contained in model objects and other state specific to the view. The bindings between view and ViewModel are simple to construct because a ViewModel object is set as the DataContext of a view. If property values in the ViewModel change, those new values automatically propagate to the view via data binding. When the user clicks a button in the View, a command on the ViewModel executes to perform the requested action. The ViewModel, never the View, performs all modifications made to the model data 
The main idea of MVVM is to take full advantage of WPF Data-Binding to allow very loose coupling between the Controller and the View. This means the Controller does not have a reference to the View and the View only has an ‘object’ typed reference to the controller using its DataContext property.