public VacationListItemPartViewModel(VacationListItemViewModel owner, VacationService.Vacation vacation) { if (owner == null) throw new ArgumentNullException(nameof(owner)); if (vacation == null) throw new ArgumentNullException(nameof(vacation)); Owner = owner; Vacation = vacation; Owner.Owner.PropertyChanged += (_, e) => { if (e.PropertyName == nameof(VacationsViewModel.CanManageVacations)) { RaisePropertyChanged(() => CanManage); UpdateCommands(); } }; Owner.Owner.Staffing.PropertyChanged += (_, e) => { if (e.PropertyName == nameof(Staffing.StaffingViewModel.Current)) { RaisePropertyChanged(() => CanManage); UpdateCommands(); } }; }
public VacationListItemPartViewModel(VacationListItemViewModel owner, VacationService.Vacation vacation) { if (owner == null) throw new ArgumentNullException(nameof(owner)); if (vacation == null) throw new ArgumentNullException(nameof(vacation)); Owner = owner; Vacation = vacation; Owner.Owner.PropertyChanged += (_, e) => { if (e.PropertyName == nameof(VacationsViewModel.CanManageVacations)) UpdateCommands(); }; Owner.Owner.Staffing.PropertyChanged += (_, e) => { if (e.PropertyName == nameof(Staffing.StaffingViewModel.Current)) UpdateCommands(); }; Vacation.PropertyChanged += (_, e) => { if (e.PropertyName == nameof(Vacation.Agreements)) UpdateCommands(); }; timer = new System.Timers.Timer(1000); timer.Elapsed += (_, __) => Owner.Owner.RunUnderDispatcher(new Action(() => UpdateCommands())); timer.Start(); }