public Binding AddBinding <TProp>(DependencyProperty <TProp> vProperty, IClassMethod <TProp> vmProperty) { var result = new Binding <TProp>(this, vProperty, vmProperty); m_Bindings.Add(result); return(result); }
public void Unhook(IVisualElement elt, IClassMethod vmMethod) { if (m_Hook != null) { var key = new CallbackTuple(elt, vmMethod); Action callback; if (m_CallbackRegistered != null && m_CallbackRegistered.TryGetValue(key, out callback)) { m_Hook.Remove((TOwner)elt, callback); } } }
protected void ExecuteCommand(IClassMethod classMethod) { var resolvedDataContext = dataContext; if (resolvedDataContext == null) { UnityDebug.LogWarning("ExecuteCommand without data context"); return; } classMethod.Execute(resolvedDataContext); }
public override void VisitClassMethod <TAttributeGroup, TDeclaringType, TGenericParameter, TTypeReference, TParameter, TMethodBody>( IClassMethod <TAttributeGroup, TDeclaringType, TGenericParameter, TTypeReference, TParameter, TMethodBody> method) { ClassMethod properties; ObjectInitializerExpression expression = CreateExpression(typeof(ClassMethod)); expression.CreateObjectExpression.NewExpression.Parameters.Add(CreateArgument(method.Name)); expression.Members.AddIfNotNull(nameof(properties.Visibility), method.Visibility); expression.Members.AddIfNotNull(nameof(properties.InheritanceModifier), method.InheritanceModifier); expression.Members.AddIfNotNull(nameof(properties.IsAsync), method.IsAsync); expression.Members.AddIfNotNull(nameof(properties.ReturnType), method.ReturnType); expression.Members.AddIfNotNull(nameof(properties.GenericParameters), method.GenericParameters); expression.Members.AddIfNotNull(nameof(properties.Parameters), method.Parameters); UseExpression(expression); }
public void Hook(IVisualElement elt, IClassMethod vmMethod) { if (m_Hook != null) { var key = new CallbackTuple(elt, vmMethod); if (m_CallbackRegistered == null) { m_CallbackRegistered = new Dictionary <CallbackTuple, Action>(); } if (!m_CallbackRegistered.ContainsKey(key)) { var callback = GetCallbackFor(elt, vmMethod); m_CallbackRegistered[key] = callback; m_Hook.Add((TOwner)elt, callback); } } }
public override void VisitClassMethod <TAttributeGroup, TDeclaringType, TGenericParameter, TTypeReference, TParameter, TMethodBody>( IClassMethod <TAttributeGroup, TDeclaringType, TGenericParameter, TTypeReference, TParameter, TMethodBody> method) { visitor.VisitClassMethodWithReflection((ClassMethodWithReflection)(object)method); }
public CallbackTuple(IVisualElement element, IClassMethod vmMethod) { this.element = element; this.vmMethod = vmMethod; }
public CallbackTuple(IVisualElement element, IClassMethod <TProp> vmMethod) { this.element = element; this.vmMethod = vmMethod; vmProperty = null; }
public CallbackTuple(IVisualElement element, ClassProperty <TProp> vmProperty) { this.element = element; this.vmProperty = vmProperty; vmMethod = null; }
static Action GetCallbackFor(IVisualElement elt, IClassMethod vmMethod) { return(() => vmMethod.Execute(elt.dataContext)); }
public ActionBinding(IVisualElement elt, ActionDependencyProperty <TOwner> vProperty, IClassMethod vmProperty) { Assert.IsNotNull(elt); Assert.IsNotNull(vProperty); Assert.IsNotNull(vmProperty); m_ViewProperty = vProperty; m_VisualElement = elt; vProperty.Hook(elt, vmProperty); }
public static int GetHashCodeFor(ActionDependencyProperty <TOwner> vProperty, IClassMethod vmProperty) { return(vProperty.GetHashCode() ^ vmProperty.GetHashCode()); }
public Binding AddBinding <TOwner>(ActionDependencyProperty <TOwner> vProperty, IClassMethod vmProperty) where TOwner : IVisualElement { var result = new ActionBinding <TOwner>(this, vProperty, vmProperty); m_Bindings.Add(result); return(result); }