title: MvxObservableCollection doesnt Initialize after logout and login again
body: <p>I have a problem with MvxObservableCollection in my HomeViewModel. When I login in my app for Demo user HomeViewModel method Initialize call my InitializeShops method which fill my MvxObservableCollection Shops List (for Demo user I have there 3 shops). But problem is when I logout (in menu Logout button). And after logout I logging again but now for Test user (for Test user I have there 5 shops). But HomeViewModel call Initialize and it call my InitializeShops but I have here still 3 shops from Demo user and not shops for Test user. Only when I used Swipe to refresh it call same method InitializeShops and I get 5 shops. I tried call method InitializeShops in Appeared method and it works but its bad here. Some tips how solve this problem?</p>
  
  <p>My Test project is on github (<a href="https://github.com/pinkysek/XabluTest/tree/master/XabluAppTest/XabluAppTest.Core/ViewModels" rel="nofollow noreferrer">HERE</a>)</p>
  
  <p><strong>My Login method in LoginViewModel:</strong></p>
  
  <pre><code>private async Task ExecuteLoginAsync(bool force)
          {
              UserDialogs.Instance.ShowLoading("SigningIn", MaskType.Black);
  
              bool isOk = false;
              bool isValidate = true;
  
              //if (string.IsNullOrEmpty(LoginName) || string.IsNullOrEmpty(Password))
              //{
              //    _infoMessageReporter.ShowInfoMessage("LoginAndPasswordRequired");
              //    isValidate = false;
              //}
  
              if (_rememberLogin &amp;&amp; !force)
              {
                  Settings.RememberLogin = _rememberLogin;
                  Settings.UserLogin = _loginName;
                  Settings.UserPassword = _password;
                  Settings.RememberApiService = _selectedApiService;
              }
  
              if (!_rememberLogin &amp;&amp; !force)
              {
                  Settings.RememberLogin = false;
                  Settings.UserLogin = string.Empty;
                  Settings.UserPassword = string.Empty;
                  Settings.RememberApiService = string.Empty;
              }
  
              if (isValidate)
              {
                  if (_selectedApiService == ApiServiceTypes.Demo.ToString())
                  {
                      if (LoginName == Constants.DemoUserLogin &amp;&amp; Password == Constants.DemoUserPassword)
                      {
                          await Task.Delay(1000);
  
                          _session.LoginName = _loginName;
                          _session.Password = _password;
                          _session.ApiService = ApiServiceTypes.Demo;
                          _session.Id = new Guid();
                          isOk = true;
                      }
                      else
                      {
                          isOk = false;
                      }
                  }
                  else
                  {
                      _session.LoginName = _loginName;
                      _session.Password = _password;
                      _session.ApiService = ApiServiceTypes.Test;
                      _session.Id = new Guid();
                      isOk = true;
                  }
              }
  
              if (isOk)
              {
                  UserDialogs.Instance.HideLoading();
                  await Task.Delay(500);
                  await Mvx.Resolve&lt;IMvxNavigationService&gt;().Navigate&lt;HomeViewModel&gt;();
              }
              else
              {
                  UserDialogs.Instance.HideLoading();
              }
          }
  </code></pre>
  
  <p><strong>My HomeViewModel:</strong></p>
  
  <pre><code>public HomeViewModel()
      {
          _session = Mvx.Resolve&lt;ISessionInfo&gt;();
      }
  
      //public void Init()
      //{
      //    Task.Run(InitializeTest);
      //}
  
      public override async Task Initialize()
      {
          await InitializeShops();
      }
  
      private async Task InitializeShops()
      {
          await Task.Delay(500);
          UserDialogs.Instance.ShowLoading("Loading...", MaskType.Black);
  
          if (_session.ApiService == ApiServiceTypes.Demo)
          {
              await Task.Delay(1000);
              //var demo = new DemoDataEngine();
              //var shops = demo.GetShops();
              var shops = new List&lt;Shop&gt;
              {
                  new Shop() {Id = 1, Name = "Shop - 1", Text = "Shop Text 1"},
                  new Shop() {Id = 2, Name = "Shop - 2", Text = "Shop Text 2"},
                  new Shop() {Id = 3, Name = "Shop - 3", Text = "Shop Text 3"}
              };
  
              var tempList = new MvxObservableCollection&lt;Shop&gt;();
              foreach (var item in shops)
              {
                  tempList.Add(item);
              }
              Shops.ReplaceWith(tempList);
          }
          else
          {
              //var shopService = new ShopService();
              //var shops = await shopService.GetShops();
  
              var shops = new List&lt;Shop&gt;
              {
                  new Shop() {Id = 1, Name = "Shop - 1", Text = "Shop Text 1"},
                  new Shop() {Id = 2, Name = "Shop - 2", Text = "Shop Text 2"},
                  new Shop() {Id = 3, Name = "Shop - 3", Text = "Shop Text 3"},
                  new Shop() {Id = 4, Name = "Shop - 4", Text = "Shop Text 4"},
                  new Shop() {Id = 5, Name = "Shop - 5", Text = "Shop Text 5"}
              };
  
              var tempList = new MvxObservableCollection&lt;Shop&gt;();
              foreach (var item in shops)
              {
                  tempList.Add(item);
              }
              Shops.ReplaceWith(tempList);
          }
  
          // Set First Shop Detail Visibility true
          //if (Shops.Any())
          //{
          //    var first = Shops.FirstOrDefault();
          //    if (first != null)
          //    {
          //        first.IsDetailVisible = true;
          //    }
          //}
  
          //LastUpdate = DateTime.Now;
          //InitializeTotalSales();
  
          UserDialogs.Instance.HideLoading();
      }
  
      private MvxObservableCollection&lt;Shop&gt; _shops = new MvxObservableCollection&lt;Shop&gt;();
      public MvxObservableCollection&lt;Shop&gt; Shops
      {
          get { return _shops; }
          set
          {
              _shops = value;
              RaisePropertyChanged(() =&gt; Shops);
          }
      }
  </code></pre>