示例#1
0
        private void OnSelectedInstallChanged(InstallLocation install)
        {
            Options.Clear();

            if (install == null)
            {
                return;
            }

            Task.Run(() =>
            {
                try
                {
                    var categories = SettingsController.GetDcsCategoryOptionForInstall(install, false);
                    var category   = categories.FirstOrDefault(c => c.Id == _categoryId);

                    if (category == null)
                    {
                        return;
                    }

                    var models = OptionModelFactory.CreateAll(category.Options);

                    foreach (var model in models)
                    {
                        model.ValueChangeObservable.Subscribe(value => OnValueChanged(model, value));
                        Options.AddOnScheduler(model);
                    }
                }
                catch (Exception e)
                {
                    GeneralExceptionHandler.Instance.OnError(e);
                }
            });
        }
        public ViewportOptionsViewModel(Module module, ViewportOption[] options, SettingsController controller)
            : base($"    {module.DisplayName} VIEWPORT OPTIONS", controller)
        {
            _module = module;

            var models = OptionModelFactory.CreateAll(options);

            foreach (var model in models)
            {
                model.ValueChangeObservable.Subscribe(value => OnValueChanged(model, value));
                Options.Add(model);
            }
        }
        protected override Task InitializeAsync()
        {
            Task.Run(() =>
            {
                try
                {
                    var options = SettingsController.GetAdvancedOptions(_advancedOptionsCategory);
                    var models  = OptionModelFactory.CreateAll(options);

                    foreach (var model in models)
                    {
                        model.ValueChangeObservable.Subscribe(value => OnValueChanged(model, value));
                        Options.AddOnScheduler(model);
                    }
                }
                catch (Exception e)
                {
                    GeneralExceptionHandler.Instance.OnError(e);
                }
            });

            return(base.InitializeAsync());
        }