internal Bind(ModelProperty sourceProp, ModelProperty activityArgProp, IArgHelper helper, bool isArg)
 {
     if (this.isArg = isArg)
     {
         sourceModelItem = sourceProp.Value;
         PropertyChangedEventManager.AddListener(sourceModelItem, this, "Name");
         this.helper = helper;
         this.activityArgProp = activityArgProp;
         last = sourceModelItem.Properties["Name"].Value.GetCurrentValue() as string;
     }
     else
     {
         sourceModelItem = sourceProp.Parent;
         PropertyChangedEventManager.AddListener(sourceModelItem, this, "ItemResultName");
         this.helper = helper;
         this.activityArgProp = activityArgProp;
         this.sourceProp = sourceProp;
         last = sourceProp.Value.GetCurrentValue() as string;
     }
 }
 private void AddBind(ModelProperty delegateArgProp, ModelProperty activityArgProp, IArgHelper helper, bool isArg)
 {
     if (binds == null) binds = new List<Bind>();
     binds.Add(new Bind(delegateArgProp, activityArgProp, helper, isArg));
 }