/// <summary> /// /// </summary> /// <param name="worker"></param> /// <param name="optionSettings"></param> /// <param name="windowManager"></param> public MainViewModel(LongProcessWorker worker, OptionSettings optionSettings, IWindowManager windowManager) { this.worker = worker; this.optionSettings = optionSettings; Log = new ObservableCollection<LogEntry>(); WindowManager = windowManager; Disposables.Add(Observable .FromEvent<EventHandler<LogEventArgs>, LogEventArgs>(h => (s, e) => h(e), h => worker.Logged += h, h => worker.Logged -= h) .ObserveOnDispatcher() .Subscribe(e => Log.Add(new LogEntry(e.DateTime, e.LogType, e.Message)))); Disposables.Add(Observable .FromEvent<EventHandler<EventArgs>, EventArgs>(h => (s, e) => h(e), h => worker.ExecutingChanged += h, h => worker.ExecutingChanged -= h) .ObserveOnDispatcher() .Subscribe(e => Running = worker.Executing)); }
/// <summary> /// /// </summary> /// <param name="optionSettings"></param> public OptionViewModel(OptionSettings optionSettings) { OptionSettings = optionSettings; }