private static IValueEditorFactory SelectProperFactory(IValueProvider p) { var candidates = Factories.Where(f => f.SupportsValue(p)).OrderBy(f => f.LoadOrder); var candidate = candidates.FirstOrDefault(); var attribute = p.GetAttribute <PropertyGridPreferredEditorAttribute>(); if (attribute != null && !attribute.EditorTypeName.IsEmpty()) { var substringCandidates = candidates.Where(f => f.GetType().Name.Contains(attribute.EditorTypeName)); if (substringCandidates.Count() > 0) { candidate = substringCandidates.First(); } } return(candidate); }
void AddResult(IValueProvider value) { if (value.GetAttribute <PropertyGridDisallowMultiEditAttribute>() != null) { return; } var signature = GetSignature(value); CompositeValueProvider bucket; if (results.TryGetValue(signature, out bucket)) { bucket.Add(value); } else { results.Add(signature, new CompositeValueProvider(value)); } }
public override bool SupportsValue(IValueProvider value) { return(base.SupportsValue(value) && value.GetAttribute <DomainAttribute>() != null); }
void AddResult(IValueProvider value) { if (value.GetAttribute<PropertyGridDisallowMultiEditAttribute>() != null) { return; } var signature = GetSignature(value); CompositeValueProvider bucket; if (results.TryGetValue(signature, out bucket)) { bucket.Add(value); } else { results.Add(signature, new CompositeValueProvider(value)); } }