Пример #1
0
 public override void Execute()
 {
     if (this.TargetProperty == null)
     {
         return;
     }
     DataBindingDialog.CreateAndSetBindingOrData(this.DesignerContext, (SceneNode)this.TargetElement, this.TargetProperty);
 }
Пример #2
0
        public override SceneNode CreateAndSetBindingOrData(SceneNodeProperty property)
        {
            PerformanceUtility.MeasurePerformanceUntilRender(PerformanceEvent.DatabindCommand);
            SceneNode sceneNode = (SceneNode)((object[])this.Objects)[0];
            SceneNode target;

            if (property.Reference.Count == 1 || this.IsTextRange)
            {
                target = sceneNode;
            }
            else
            {
                using (SceneEditTransaction editTransaction = sceneNode.ViewModel.CreateEditTransaction("Build local value tree", true))
                {
                    sceneNode.EnsureNodeTree(property.Reference, true, true);
                    editTransaction.Commit();
                }
                PropertyReference propertyReference = property.Reference.Subreference(0, property.Reference.Count - 2);
                target = sceneNode.GetLocalValueAsSceneNode(propertyReference);
            }
            ReferenceStep lastStep = property.Reference.LastStep;

            return(DataBindingDialog.CreateAndSetBindingOrData(this.designerContext, target, lastStep));
        }