コード例 #1
0
        private bool TryGetDeferredAssembler(MutableXamlMember xamlMember, out IDeferredLoader loader)
        {
            Guard.ThrowIfNull(xamlMember, nameof(xamlMember));

            var propInfo = xamlMember.DeclaringType.UnderlyingType.GetRuntimeProperty(xamlMember.Name);

            if (propInfo != null)
            {
                var success = mapping.TryGetMapping(propInfo, out loader);
                return(success);
            }

            loader = null;
            return(false);
        }
コード例 #2
0
        private static XamlMember GetMember(MutableXamlMember member, XamlSchemaContext context)
        {
            var declaringType = ToWpf(member.DeclaringType, context);

            if (!member.IsAttachable)
            {
                var xamlMember = declaringType.GetMember(member.Name);
                return(new XamlMemberAdapter(xamlMember, context));
            }
            else
            {
                var xamlMember = declaringType.GetAttachableMember(member.Name);
                return(new XamlMemberAdapter(xamlMember, context, member.Name, xamlMember.Invoker.UnderlyingGetter, xamlMember.Invoker.UnderlyingSetter));
            }
        }
コード例 #3
0
        private static XamlMember GetMember(MutableXamlMember member, XamlSchemaContext context)
        {
            var declaringType = ToWpf(member.DeclaringType, context);

            if (!member.IsAttachable)
            {
                var xamlMember = declaringType.GetMember(member.Name);
                return new XamlMemberAdapter(xamlMember, context);
            }
            else
            {
                var xamlMember = declaringType.GetAttachableMember(member.Name);
                return new XamlMemberAdapter(xamlMember, context, member.Name, xamlMember.Invoker.UnderlyingGetter, xamlMember.Invoker.UnderlyingSetter);
            }
        }
コード例 #4
0
 private bool OnSetValue(object instance, MutableXamlMember parentProperty, object value)
 {
     if (XamlSetValueHandler == null)
     {
         return false;
     }
     var e = new XamlSetValueEventArgs(parentProperty, value);
     XamlSetValueHandler(instance, e);
     return e.Handled;
 }
コード例 #5
0
 public PerspexXamlMemberValuePlugin(MutableXamlMember xamlMember)
     : base(xamlMember)
 {
     _xamlMember = xamlMember;
 }
コード例 #6
0
ファイル: StateCommuter.cs プロジェクト: rdterner/OmniXAML
 private static object GetValueTuple(object instance, MutableXamlMember member)
 {
     var xamlMemberBase = member;
     return xamlMemberBase.GetValue(instance);
 }
コード例 #7
0
 public XamlSetValueEventArgs(MutableXamlMember member, object value)
 {
     Value  = value;
     Member = member;
 }
コード例 #8
0
        private bool TryGetDeferredAssembler(MutableXamlMember xamlMember, out IDeferredLoader loader)
        {
            Guard.ThrowIfNull(xamlMember, nameof(xamlMember));

            var propInfo = xamlMember.DeclaringType.UnderlyingType.GetRuntimeProperty(xamlMember.Name);
            if  (propInfo!=null)
            {
                var success = mapping.TryGetMapping(propInfo, out loader);
                return success;
            }

            loader = null;
            return false;
        }
コード例 #9
0
 public XamlSetValueEventArgs(MutableXamlMember member, object value)
 {
     Value = value;
     Member = member;
 }
コード例 #10
0
 public MemberValuePlugin(MutableXamlMember xamlMember) : base(xamlMember)
 {
     this.xamlMember = xamlMember;
 }
コード例 #11
0
        private void ApplyPropertyValue(StateBag bag, MutableXamlMember parentProperty, object value, bool onParent)
        {
            var instance = onParent ? bag.Parent.Instance : bag.Current.Instance;

            var isSetExternally = OnSetValue(instance, parentProperty, value);

            if (!isSetExternally)
            {
                TypeOperations.SetValue(instance, parentProperty, value);
            }
        }
コード例 #12
0
 private object GetValueOfMemberFromParentInstance(MutableXamlMember property)
 {
     var parentInstance = bag.Parent.Instance;
     var valueOfProperty = TypeOperations.GetValue(parentInstance, property);
     return valueOfProperty;
 }
コード例 #13
0
 public MemberValuePlugin(MutableXamlMember xamlMember)
     : base(xamlMember)
 {
     this.xamlMember = xamlMember;
 }
コード例 #14
0
 public MemberNodesBlock(XamlInstruction headingInstruction)
 {
     member = (MutableXamlMember)headingInstruction.Member;
 }
コード例 #15
0
        private static object GetValueTuple(object instance, MutableXamlMember member)
        {
            var xamlMemberBase = member;

            return(xamlMemberBase.GetValue(instance));
        }
コード例 #16
0
 public static void SetValue(object instance, MutableXamlMember parentProperty, object value)
 {
     parentProperty.XamlMemberValueConnector.SetValue(instance, value);
 }
コード例 #17
0
 public static object GetValue(object parentInstance, MutableXamlMember property)
 {
     return property.XamlMemberValueConnector.GetValue(parentInstance);
 }