I really made a search for this topic and did not find anything, and because of that, I am asking the question here.
I have a WPF application with Prism installed.
I have wired the view-model with the view automatically by name convention

<UserControl x:Class="Views.ViewA"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:prism="http://prismlibrary.com/"             
             prism:ViewModelLocator.AutoWireViewModel="True">

and the model in the 'Model' like this

public class ViewAViewModel {
    public ViewAViewModel () {
         // time-resource consuming operations
    }
}

the automatic binding work perfectly without a problem and the view and its corresponding view-model is matching, but the problem here. I have a lot of those views say (50) and for every one of them, the view-model will be created with constructor exhausting the processes. This will make the startup of the application longer and also it will create a lot of view-models objects and put them in the RAM without being sure that they will be used at all.

What I need is to create the view-model class when the view is activated (I mean when the view is navigated to). Is this possible and if yes how?

0 Answers