Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
        }
Пример #3
0
        private void RegisterBinding(RegisteredDataBinding binding)
        {
            // Init.
            binding.DataBinding.Init(DataBindRunner.Instance.DataContextNodeConnectorInitializer, this);

            if (this.isMonitoringBindings)
            {
                binding.StartMonitoring();
                binding.ValueChanged += this.OnBindingValueChanged;
            }
        }
Пример #4
0
        private void UnregisterBinding(RegisteredDataBinding binding)
        {
            if (this.isMonitoringBindings)
            {
                binding.StopMonitoring();
                binding.ValueChanged -= this.OnBindingValueChanged;
            }

            // Deinit.
            binding.DataBinding.Deinit();
        }
Пример #5
0
        private void OnBindingValueChanged(RegisteredDataBinding binding)
        {
            var handler = binding.Callback;

            if (handler != null)
            {
                handler();
            }

            this.OnBindingValuesChanged();
        }