/// <summary> /// Creates a new object. /// </summary> /// <param name="configuration"></param> /// <param name="record"></param> /// <param name="isListChild"></param> /// <param name="group"></param> /// <param name="propertyName"></param> public ConfigurationListenerEventArgs(Configuration configuration, object record, bool isListChild, ConfigurationListenerGroup group, string propertyName) { Configuration = configuration; Record = record; IsListChild = isListChild; Group = group; PropertyName = propertyName; }
/// <summary> /// Returns true if an event with the given properties has been raised by the listener. /// </summary> /// <param name="group"></param> /// <param name="propertyName"></param> /// <param name="record"></param> /// <param name="isListChild"></param> /// <returns></returns> private bool RaisedEvent(ConfigurationListenerGroup group, string propertyName, object record, bool isListChild = false) { int index = -1; for (var i = 0; i < _PropertyChanged.AllArgs.Count; ++i) { var args = _PropertyChanged.AllArgs[i]; if (args.Configuration == _Configuration && args.Group == group && args.IsListChild == isListChild && args.PropertyName == propertyName && args.Record == record) { index = i; break; } } object argsSender = index == -1 ? null : _PropertyChanged.AllSenders[index]; return(index != -1 && Object.ReferenceEquals(argsSender, _Listener)); }
/// <summary> /// Returns true if an event with the given properties has been raised by the listener. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="group"></param> /// <param name="propertyExpression"></param> /// <param name="record"></param> /// <param name="isListChild"></param> /// <returns></returns> private bool RaisedEvent <T>(ConfigurationListenerGroup group, Expression <Func <T, object> > propertyExpression, object record, bool isListChild = false) { var propertyName = PropertyHelper.ExtractName <T>(propertyExpression); return(RaisedEvent(group, propertyName, record, isListChild)); }
/// <summary> /// Shortcut method to call <see cref="OnPropertyChanged"/>. /// </summary> /// <param name="record"></param> /// <param name="group"></param> /// <param name="propertyChanged"></param> /// <param name="isListChild"></param> private void RaisePropertyChanged(object record, ConfigurationListenerGroup group, PropertyChangedEventArgs propertyChanged, bool isListChild = false) { EventHelper.Raise(PropertyChanged, this, () => new ConfigurationListenerEventArgs(_Configuration, record, isListChild, group, propertyChanged.PropertyName)); }