public static TChild AttachToDataContextHolder <TChild, TTarget>( this IVisualTreeLocation <TChild, TTarget> holder, params Type[] type) where TTarget : FrameworkElement => holder.CreateNewChild(ElligibleParents(holder.Target) .FirstOrDefault(i => type.Any(j => j.IsInstanceOfType(i.DataContext))));
public static TChild AttachToName <TChild, TTarget>(this IVisualTreeLocation <TChild, TTarget> holder, string name) where TTarget : FrameworkElement => holder.CreateNewChild(ElligibleParents(holder.Target) .FirstOrDefault(i => i.Name?.Equals(name, StringComparison.Ordinal) ?? false));
public static TChild AttachToType <TChild, TTarget>(this IVisualTreeLocation <TChild, TTarget> holder, Type type) where TTarget : DependencyObject => holder.CreateNewChild(ElligibleParents(holder.Target) .FirstOrDefault(type.IsInstanceOfType));
public static TChild AttachToTop <TChild, TTarget>(this IVisualTreeLocation <TChild, TTarget> holder) where TTarget : DependencyObject => holder.CreateNewChild(ElligibleParents(holder.Target).Last());