public PresetFolderViewModel(PresetsService presetsService, bool isExpanded, bool isBuiltIn, long id = 0) { this.presetsService = presetsService; this.isExpanded = isExpanded; this.IsBuiltIn = isBuiltIn; this.Id = id; this.AllItems .Connect() .Bind(this.AllItemsBindable) .Subscribe(); this.WhenAnyValue(x => x.IsExpanded) .Skip(1) .Subscribe(isExp => { this.presetsService.SaveFolderIsExpanded(this); }); this.WhenAnyValue(x => x.IsExpanded) .Subscribe(isExp => { this.ReselectPresetOnExpanded(this); }); }
public PresetFolderViewModel(PresetsService presetsService, bool isExpanded) { this.presetsService = presetsService; this.isExpanded = isExpanded; IObservable <bool> canRemove = this.WhenAnyValue(x => x.SubFolders.Count, x => x.Items.Count, (numSubfolders, numItems) => { return(numSubfolders == 0 && numItems == 0 && this.Id != 0); }); this.CreateSubfolder = ReactiveCommand.Create(); this.CreateSubfolder.Subscribe(_ => this.CreateSubfolderImpl()); this.RenameFolder = ReactiveCommand.Create(); this.RenameFolder.Subscribe(_ => this.RenameFolderImpl()); this.RemoveFolder = ReactiveCommand.Create(canRemove); this.RemoveFolder.Subscribe(_ => this.RemoveFolderImpl()); this.WhenAnyValue(x => x.IsExpanded) .Skip(1) .Subscribe(isExp => { this.presetsService.SaveFolderIsExpanded(this); }); this.WhenAnyValue(x => x.IsExpanded) .Subscribe(isExp => { this.ReselectPresetOnExpanded(this); }); }
public static PresetFolderViewModel FromPresetFolder(PresetFolder folder, PresetsService passedPresetsService) { return(new PresetFolderViewModel(passedPresetsService, folder.IsExpanded, isBuiltIn: false, id: folder.Id) { Name = folder.Name, ParentId = folder.ParentId }); }