public MultiPropertyMonitor(IEnumerable <IPropertyMonitor <T> > propertyMonitors) { ValueChanged.Add(self => ((IPropertyMonitor)self).ValueChanged.Invoke(self)); PropertyMonitors = propertyMonitors; foreach (var prop in PropertyMonitors) { prop.ValueChanged.Add(PropValueChanged); } }