public ChooseSoundViewModel(IProtoService protoService, ICacheService cacheService, ISettingsService settingsService, IEventAggregator aggregator)
            : base(protoService, cacheService, settingsService, aggregator)
        {
            Items = new DiffObservableCollection <NotificationSoundViewModel>(new NotificationSoundDiffHandler());

            UploadCommand = new RelayCommand(Upload);
        }
        public SettingsStickersViewModel(IProtoService protoService, ICacheService cacheService, ISettingsService settingsService, IEventAggregator aggregator)
            : base(protoService, cacheService, settingsService, aggregator)
        {
            Items          = new DiffObservableCollection <StickerSetInfo>(new StickerSetInfoDiffHandler());
            ReorderCommand = new RelayCommand <StickerSetInfo>(ReorderExecute);

            StickerSetOpenCommand   = new RelayCommand <StickerSetInfo>(StickerSetOpenExecute);
            StickerSetHideCommand   = new RelayCommand <StickerSetInfo>(StickerSetHideExecute);
            StickerSetRemoveCommand = new RelayCommand <StickerSetInfo>(StickerSetRemoveExecute);
            //StickerSetShareCommand = new RelayCommand<StickerSetInfo>(StickerSetShareExecute);
            //StickerSetCopyCommand = new RelayCommand<StickerSetInfo>(StickerSetCopyExecute);
        }
        public SettingsThemeViewModel(IProtoService protoService, ICacheService cacheService, ISettingsService settingsService, IEventAggregator aggregator, IThemeService themeService)
            : base(protoService, cacheService, settingsService, aggregator)
        {
            _themeService = themeService;

            Items = new DiffObservableCollection <ThemeBrush>(new ThemeBrushDiffHandler(), new DiffOptions {
                AllowBatching = false, DetectMoves = false
            });

            EditTitleCommand = new RelayCommand(EditTitleExecute);
            EditBrushCommand = new RelayCommand <ThemeBrush>(EditBrushExecute);
        }