public NotificationItemViewModel(NotificationItemModel embeddedModel) { _embeddedModel = embeddedModel; _commands = new DispatcherNotifiedObservableCollection <CommandViewModel>(); setupDoWorkCommand(); setupBackgroundWorker(); bgWorker_loadCommands.RunBackgroundTask(); _embeddedModel.OnCommandsChanged += (o, e) => { bgWorker_loadCommands.RunBackgroundTask(); }; _embeddedModel.OnRemoveRequested += (o, e) => { if (ParentModel != null) { ParentModel.RemovePending(); } }; _embeddedModel.PropertyChanged += (o, e) => { switch (e.PropertyName) { case "NotificationMode": if (ProgressBrushDic.ContainsKey(_embeddedModel.NotificationMode)) { ProgressForeground = ProgressBrushDic[_embeddedModel.NotificationMode]; } if (_embeddedModel.NotificationMode == NotificationMode.Error && PercentCompleted < 33) { PercentCompleted = 33; } break; case "PercentCompleted": if (_embeddedModel.NotificationMode != NotificationMode.Error) { PercentCompleted = _embeddedModel.PercentCompleted; } break; } }; }