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); }