public FilePickerViewModel( IObjectPropertiesProvider objectPropertyProvider, IFileManager fileManager, RecentItemsFolderViewModel recentItemsFolderViewModel, IStateService stateService) { _stateService = stateService; _objectPropertyProvider = objectPropertyProvider; this.Items = new ObservableCollection<IFilePickerItem>(); this.ContextMenuItems = new ObservableCollection<MenuItemViewModel> { new MenuItemViewModel("Add Folder", this.AddLocation) }; if (recentItemsFolderViewModel != null) { if (_stateService != null) { FilePickerState state; if (_stateService.TryGetState("FilePicker", out state)) { foreach (var item in state.RecentItems) { recentItemsFolderViewModel.ChildItems.Add(new FileLocationViewModel(item, fileManager)); } } } this.Items.Add(recentItemsFolderViewModel); } if (_stateService != null) _stateService.SavingEvent.Subscribe(SaveState); _disposables.Add(this .ObserveProperty(v => v.SelectedItemProperties) .ObserveLatest(properties => properties.Items) .ObserveLatest(items => items.Count) .Subscribe(count => this.ShowItemProperties = count > 0)); }