internal void RemoveElementPropertyChangeListener(IPropertyChangeListener listener, RadProperty radProperty) { List <IPropertyChangeListener> changeListeners = GetPropertyChangeListeners(radProperty); if (changeListeners == null) { return; } changeListeners.Remove(listener); }
/// <summary> /// Subscribe for property-change event for given RadProperty for all elements in the tree. /// </summary> /// <param name="listener"></param> /// <param name="radProperty"></param> internal void AddElementPropertyChangeListener(IPropertyChangeListener listener, RadProperty radProperty) { List <IPropertyChangeListener> changeListeners = GetPropertyChangeListeners(radProperty); if (changeListeners == null) { changeListeners = new List <IPropertyChangeListener>(1); elementPropertyChangeListeners[radProperty.PropertyKey] = changeListeners; } if (!changeListeners.Contains(listener)) { changeListeners.Add(listener); } }
public BindingExpression(BindingExpressionKey key, BindingBase binding, PropertyEntry<object> propertyEntry) { this.propertyEntry = propertyEntry; Binding = binding; this.Key = key; if(IsTwoWayBinding && string.IsNullOrEmpty(((Binding)this.Binding).Path)) Guard.InvalidOperation(SR.TwoWayBindingRequiresPathExceptionMessage); WpfBindingMode mode = IsTwoWayBinding ? WpfBindingMode.TwoWay : WpfBindingMode.OneWay; WpfBinding wpfBinding = new WpfBinding("PropertyValue." + ((Binding)binding).Path) { Source = propertyEntry, Mode = mode}; if(Property == null) Guard.ArgumentException("propertyName"); MethodInfo createMethod = typeof(PropertyChangeListener<>).MakeGenericType(key.property.PropertyType).GetMethod("Create", BindingFlags.Static | BindingFlags.Public); listener = (IPropertyChangeListener)createMethod.Invoke(null, new object[] { wpfBinding, new Action<object>(UpdateTargetProperty), Property.GetValue(Control) }); if(IsTwoWayBinding) Property.AddValueChanged(Control, OnTargerPropertyChanged); }
public void AddCallback(IPropertyChangeListener callback) { callbacks.Add(callback); }
// Use this for initialization public void Register(IPropertyChangeListener listener) { listeners.Add(listener); GameObject.Find("Player").GetComponent <PlayerController>().LetMeKnow("Listeners: " + listeners.Count); }