Issue
Following this documentation, I am binding the viewmodel using ServiceProvider using following code:
this.BindingContext = App.Current.Services.GetService(typeof(ViewModelA));
But for business rules, I need to pass the data between pages and after doing research I came across this stackoverflow question and it is suggested to use following code
this.BindingContext = new ViewModelA(data);
So I am not sure if this breaks mvvm pattern or not. If it breaks then is there any another way of passing the data while using Ioc & DI. Any help would be appreciated.
Solution
Jason's suggestion was easiest to implement. I created Init(data)
in the BaseViewModel which is then inherited by other viewmodels. And I bind the viewmodels using ServiceProvider.
var viewModelA = App.Current.Services.GetService<ViewModelA>();
viewModelA.Init(data);
this.BindingContext = viewModelA;
Answered By - Harsh
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.