Пример #1
0
 public void OnMethodInvoke(MethodInterceptionArgs args)
 {
     try
     {
         PropertyChangesTracker.PushOnStack(args.Instance);
         args.Proceed();
     }
     finally
     {
         PropertyChangesTracker.PopFromStack();
         PropertyChangesTracker.RaisePropertyChangedIfNeeded(args.Instance);
     }
 }
Пример #2
0
        public void OnFieldSet(LocationInterceptionArgs args)
        {
            if (this.fieldValueComparer.AreEqual(args.LocationFullName, args.GetCurrentValue(), args.Value))
            {
                args.ProceedSetValue();
                return;
            }

            args.ProceedSetValue();


            this.childPropertyChangedProcessor.HandleFieldChange(args);

            PropertyChangesTracker.RaisePropertyChangedIfNeeded(args.Instance);
        }
Пример #3
0
 /// <summary>
 /// Raise all events on specific object
 /// </summary>
 /// <param name="instance">object to raise events on</param>
 public static void RaiseEvents(object instance)
 {
     PropertyChangesTracker.RaisePropertyChangedOnlyOnSpecifiedInstance(instance);
 }
Пример #4
0
 /// <summary>
 /// Raise all events on objects not in call stack
 /// </summary>
 public static void RaiseEvents()
 {
     PropertyChangesTracker.RaisePropertyChangedIncludingCurrentObject();
 }