/// <summary> /// Adds and initializes the specified binding and adds a callback that's /// invoked when the value of that binding changes. /// </summary> /// <param name="binding"></param> /// <param name="onValueChanged"></param> public void AddBinding(DataBinding binding, Action onValueChanged) { var registeredDataBinding = new RegisteredDataBinding(binding, onValueChanged); this.RegisterBinding(registeredDataBinding); this.bindings.Add(registeredDataBinding); }
/// <summary> /// Adds and initializes the specified binding. /// </summary> /// <param name="binding">Binding to add.</param> public void AddBinding(DataBinding binding) { var registeredDataBinding = new RegisteredDataBinding(binding, null); this.RegisterBinding(registeredDataBinding); this.bindings.Add(registeredDataBinding); }
private void RegisterBinding(RegisteredDataBinding binding) { // Init. binding.DataBinding.Init(DataBindRunner.Instance.DataContextNodeConnectorInitializer, this); if (this.isMonitoringBindings) { binding.StartMonitoring(); binding.ValueChanged += this.OnBindingValueChanged; } }
private void UnregisterBinding(RegisteredDataBinding binding) { if (this.isMonitoringBindings) { binding.StopMonitoring(); binding.ValueChanged -= this.OnBindingValueChanged; } // Deinit. binding.DataBinding.Deinit(); }
private void OnBindingValueChanged(RegisteredDataBinding binding) { var handler = binding.Callback; if (handler != null) { handler(); } this.OnBindingValuesChanged(); }