Я использую шаблон проектирования MVVM, у меня есть ViewModelBase, у которого есть статическая переменная для хранения списка ответов на опрос, каждый другой viewModel наследует от viewModelbase, я добавляю ответ в список, но когда я перехожу кдругая страница с другим вопросом, статической переменной (список ответов на опрос), которую она сбрасывает и не сохраняет ответ ?, есть ли какие-либо предложения. Спасибо.
Например, у меня есть: ViewModelBase
public class ViewModelBase : ExtendedBindableObject
{
private static ListOfResponses _Responses;
public ListOfResponses Responses{
get { return _Responses;}
set{ _Responses = value; RaisePropertyChanged(() => Responses);}
}
public ViewModelBase(){ _Responses = new ListOfResponses();}
}
для модели:
public class ListOfResponses {
public List<Response> ResponseList {get;set;}
public int surveyParticipant{get;set;}
}
для модели View, добавляемой в список ответов:
public class AddResponses{
private Response _Response;
public Response Response{
get{return _Response;}
set{
if(_Response== value) {return;}
_Response= value;
RaisePropertyChanged(() => Response);
}
}
public ICommand addResponse{get;set;}
public class AddResponses(Response _Response){ addResponse = new Command(AddToList); this._Response = _Response;}
public async void AddToList(){await performAddToList();}
private async Task performAddToList(){
if(Response != null){
_Responses.Add(Response);
await NavigationService.NavigateToAsync<NextQuestionViewModel>();
}
}
}
Второй подход ::::::::::::::::::::::::::::: *::::::
public class ViewModelBase : ExtendedBindableObject
{
private static ListOfResponses _Responses = new ListOfResponses();
public List<Response> ListResponse = new List<Response>();
public ListOfResponses Responses{
get { return _Responses;}
set{ _Responses.ResponseList = ListResponse ; RaisePropertyChanged(() => Responses);}
}
public ViewModelBase(){ }
}
и вдругой вид модели базы:
public class AddResponses{
private Response _Response;
public Response Response{
get{return _Response;}
set{
if(_Response== value) {return;}
_Response= value;
RaisePropertyChanged(() => Response);
}
}
public ICommand addResponse{get;set;}
public class AddResponses(Response _Response){ addResponse = new Command(AddToList); this._Response = _Response;}
public async void AddToList(){await performAddToList();}
private async Task performAddToList(){
if(Response != null){
ListResponse .Add(Response);
await NavigationService.NavigateToAsync<NextQuestionViewModel>();
}
}
}
Я тоже пробовал, но это не работает.