public async void RefreshSites() { await ApplyModelToViewModel(); FilteredSites.RefreshView(); NavigationService.GoBack(); NavigationService.GoForward(); }
public void DeleteItem() { foreach (var e in Sites.Where(site => site.Identifier == SelectedSite?.Identifier).ToList()) { Sites.Remove(e); } App.Container.Resolve <ISitePersistor>().Persist(Sites); FilteredSites.RefreshView(); }
private async void OnPropertyChanged(object sender, PropertyChangedEventArgs args) { if (args.PropertyName == nameof(SitesOrder) || args.PropertyName == nameof(SearchString)) { if (args.PropertyName == nameof(SitesOrder)) { ApplySortOrderToFilteredSites(); } FilteredSites.RefreshView(); } }
public override async Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary <string, object> suspensionState) { if (suspensionState.Any()) { //Value = suspensionState[nameof(Value)]?.ToString(); } SitesOrder = Settings.LastSortBy; ApplySortOrderToFilteredSites(); if (Sites == null || Settings.PopPasswordsVisibleChangedFlag()) { await ApplyModelToViewModel(); } if (parameter is SitesPageViewModelParameter) { var param = parameter as SitesPageViewModelParameter; if ((param.ParameterType == SitesPageViewModelParameterType.NewSite || param.ParameterType == SitesPageViewModelParameterType.MergeSite) && param.Parameter is ISite) { // the identifier of an edited or new site var detailSite = param.Parameter as ISite; // regenerate password (detailSite as Site).SetGeneratedPassword(GeneratePassword(detailSite), !Settings.PasswordsVisible); var replaceTarget = Sites.FirstOrDefault(site => site.Identifier == detailSite.Identifier); if (replaceTarget != null) { // merge with existing (cause was edit mode) replaceTarget.MergeWith(detailSite); } else { // add as new Sites?.Add(detailSite); } App.Container.Resolve <ISitePersistor>().Persist(Sites); FilteredSites.RefreshView(); SelectedSite = replaceTarget; } if (param.ParameterType == SitesPageViewModelParameterType.RefreshView) { await ApplyModelToViewModel(); } } // register some listeners PropertyChanged += OnPropertyChanged; }