Example #1
0
        public virtual void InitializeBindableComponent()
        {
            updateReceivers = new Dictionary <string, IValueUpdateReceiver>();

            var callbacks = GetCallbacks();

            foreach (ActiveBinding binding in selectedBindings)
            {
                IValueUpdateReceiver vur = callbacks[binding.CallbackName];
                vur.BindingPath = new Path(binding.BindingPath);
                updateReceivers[binding.CallbackName] = vur;
            }
        }
        /// <summary>
        /// Returns the complete, absolute datapath of this update receiver.
        /// </summary>
        /// <remarks>
        /// Update receiver may be child to a metanode. In this case the local path
        /// is not the absolute one.
        /// </remarks>
        /// <param name="valueUpdateReceiver"></param>
        /// <returns>Absolute datapath of this update receiver.</returns>
        public static Path GetAbsoluteDataPath(this IValueUpdateReceiver valueUpdateReceiver)
        {
            // Start  with local path of update receiver
            Path absolutePath = new Path(valueUpdateReceiver.BindingPath);

            // Prepend path of potential MetaDataNode parenting this value update receiver
            if (valueUpdateReceiver.Context is IMetaDataNode)
            {
                IMetaDataNode metaDataNode = valueUpdateReceiver.Context as IMetaDataNode;
                absolutePath = Path.Concatenate(metaDataNode.GetAbsoluteDataPath(), absolutePath);
            }

            return(absolutePath);
        }