public static IBindingToSyntax <TTarget, TSource> Bind <TTarget, TSource>([NotNull] this IBindingBuilder builder,
                                                                           [NotNull] TTarget targetGeneric, [NotNull] string targetPath) where TTarget : class
 {
     Should.NotBeNull(builder, "builder");
     Should.NotBeNull(targetGeneric, "targetGeneric");
     Should.NotBeNullOrWhitespace(targetPath, "targetPath");
     builder.Add(BindingBuilderConstants.Target, targetGeneric);
     builder.Add(BindingBuilderConstants.TargetPath, BindingServiceProvider.BindingPathFactory(targetPath));
     return(new SyntaxBuilder <TTarget, TSource>(builder));
 }
Ejemplo n.º 2
0
 internal static IObserver CreateBindingSource(IDataContext context, string path, object src,
                                               bool ignoreSrc = false)
 {
     if (src == null && (ignoreSrc || !context.TryGetData(BindingBuilderConstants.Source, out src)))
     {
         src = BindingServiceProvider
               .ContextManager
               .GetBindingContext(context.GetData(BindingBuilderConstants.Target, true),
                                  context.GetData(BindingBuilderConstants.TargetPath, true).Path);
     }
     return(BindingServiceProvider
            .ObserverProvider
            .Observe(src, BindingServiceProvider.BindingPathFactory(path), false, context));
 }
Ejemplo n.º 3
0
        public static object GetValueFromPath(object src, string strPath, int firstMemberIndex = 0)
        {
            IBindingPath path = BindingServiceProvider.BindingPathFactory(strPath);

            for (int index = firstMemberIndex; index < path.Parts.Count; index++)
            {
                string item = path.Parts[index];
                if (src.IsNullOrUnsetValue())
                {
                    return(null);
                }
                IBindingMemberInfo member = BindingServiceProvider
                                            .MemberProvider
                                            .GetBindingMember(src.GetType(), item, false, true);
                src = member.GetValue(src, null);
            }
            return(src);
        }