コード例 #1
0
ファイル: EventRaised.cs プロジェクト: GregRos/Patchwork
 public override void Subscribe(object target, IBindable bindable)
 {
     var type = target.GetType();
     var eventInfo = type.GetEvent(EventName);
     EventHandler eventHandler = null;
     eventHandler = new EventHandler((o, e) => {
         if (bindable.IsDisposed) {
             eventInfo.RemoveEventHandler(target, eventHandler);
             return;
         }
         bindable.NotifyChange();
     });
     eventInfo.AddEventHandler(target, eventHandler);
 }
コード例 #2
0
ファイル: EventRaised.cs プロジェクト: slamj1/Patchwork
        public override void Subscribe(object target, IBindable bindable)
        {
            var          type         = target.GetType();
            var          eventInfo    = type.GetEvent(EventName);
            EventHandler eventHandler = null;

            eventHandler = new EventHandler((o, e) => {
                if (bindable.IsDisposed)
                {
                    eventInfo.RemoveEventHandler(target, eventHandler);
                    return;
                }
                bindable.NotifyChange();
            });
            eventInfo.AddEventHandler(target, eventHandler);
        }
コード例 #3
0
        public override void Subscribe(object target, IBindable bindable)
        {
            var notifier = (INotifyPropertyChanged)target;
            PropertyChangedEventHandler notifierOnPropertyChanged = null;

            notifierOnPropertyChanged = (sender, e) => {
                if (e.PropertyName != PropertyName)
                {
                    return;
                }
                if (bindable.IsDisposed)
                {
                    notifier.PropertyChanged -= notifierOnPropertyChanged;
                    return;
                }
                bindable.NotifyChange();
            };
            notifier.PropertyChanged += notifierOnPropertyChanged;
        }
コード例 #4
0
        internal void Initialize(IBindable <T> target)
        {
            Target             = target;
            Source.HasChanged += OnChanged;
            Target.HasChanged += OnChanged;
            switch (Mode)
            {
            case BindingMode.TwoWayPrioritizeTarget:
            case BindingMode.FromTarget:
                target.NotifyChange();
                break;

            case BindingMode.IntoTarget:
            case BindingMode.TwoWay:
                Source.NotifyChange();
                break;

            case BindingMode.Disabled:
                break;
            }
        }