public CloudSeedView() { var plugin = new CloudSeedPlugin(); plugin.InitializeDevice(); viewModel = plugin.ViewModel; DataContext = viewModel; InitializeComponent(); Setup(); }
public CloudSeedViewModel(CloudSeedPlugin plugin) { this.plugin = plugin; this.parameterUpdates = new Dictionary <Parameter, double>(); NumberedParameters = new ObservableCollection <double>(); foreach (var para in Enum.GetValues(typeof(Parameter)).Cast <Parameter>()) { NumberedParameters.Add(0.0); } SaveProgramCommand = new DelegateCommand(name => SaveProgram(name.ToString())); LoadProgramCommand = new DelegateCommand(program => LoadProgram((ProgramBanks.PluginProgram?)program)); DeleteProgramCommand = new DelegateCommand(_ => DeleteProgram()); NumberedParameters.CollectionChanged += (s, e) => { if (suppressUpdates) { return; } lock (updateLock) { var para = (Parameter)e.NewStartingIndex; var val = (double)e.NewItems[0]; plugin.SetParameter(para, val); if (para == Parameter.LateMode) { NotifyChanged(() => DelayMode); } NotifyChanged(() => ActiveControlDisplay); } }; updateThread = new Thread(UpdateParameters); updateThread.IsBackground = true; updateThread.Priority = ThreadPriority.Lowest; updateThread.Start(); }