Есть ли способ временно сохранить пользовательский ввод или ответы на список вопросов в приложении xamarin, прежде чем публиковать его в веб-интерфейсе? - PullRequest
0 голосов
/ 21 октября 2019

Я использую шаблон проектирования 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>();
     }
   }
}

Я тоже пробовал, но это не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...