public void SetObject(T value) { if (!ReferenceEquals(_obj, value)) { object old = _obj; if (_obj != null) { _obj.PropertyChanged -= _obj_PropertyChanged; } _obj = value; if (_obj != null) { _obj.PropertyChanged += _obj_PropertyChanged; } ObjectChanged?.Invoke(this, new ObjectChangedEventArgs(old)); ObjectPropertyChanged?.Invoke(this, new PropertyChangedEventArgs(null)); } }
private void _obj_PropertyChanged(object sender, PropertyChangedEventArgs e) { if (IsObjectToFile) { if (LagSaveFileMilliseconds <= 0) { ForceSaveFile(); } else { if (LagSaveFileTimer == null) { LagSaveFileTimer = new Timer(); LagSaveFileTimer.Elapsed += LagSaveFileTimer_Elapsed; } LagSaveFileTimer.Interval = LagSaveFileMilliseconds; LagSaveFileTimer.Enabled = true; } } ObjectPropertyChanged?.Invoke(sender, e); }
private void OnObjectPropertyChanged(object sender, PropertyChangedEventArgs args) { ObjectPropertyChanged?.Invoke(this, (ILiveObject)sender, args.PropertyName); }