Exemple #1
0
 /// <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));
 }