Моя единственная мысль - создать общий родительский ViewModel, который включает в себя UserProfile в качестве общего поля.
Итак, создайте BaseViewModel и установите каждый ViewModel для наследования от BaseViewModel. Единственное изменение в ViewModelGenerator должно заключаться в том, что вам нужно установить соответствующие значения для вашего UserProfile в конструкторе.
Я использую здесь публичность для простоты, но если это проблема безопасности, вероятно, будут использовать как минимум защищенные методы получения и установки. Что-то похожее на:
public class ViewModel1 : BaseViewModel {
public ViewModel1 ()
:base(UserProfile profiledata){
//Constructor code for ViewModel1
}
}
и в BaseViewModel:
public class BaseViewModel{
public UserProfile profile;
public BaseViewModel(UserProfile prof){
profile = prof;
}
}