private static void AddCompleteItems(Type type, SortedDictionary <string, AutoCompleteItem> completeItems) { foreach (var member in type.GetFields(BindingFlags.Public | BindingFlags.Instance)) { completeItems.Add(new AutoCompleteItem(member)); } foreach (var member in type.GetProperties(BindingFlags.Public | BindingFlags.Instance) .Where(info => info.GetIndexParameters().Length == 0)) { completeItems.Add(new AutoCompleteItem(member)); } foreach (var member in type.GetEvents(BindingFlags.Public | BindingFlags.Instance)) { completeItems.Add(new AutoCompleteItem(member)); } if (!type.IsValueType && !typeof(Delegate).IsAssignableFrom(type)) { completeItems.Add(new AutoCompleteItem(AttachedMemberConstants.DataContext, AttachedMemberConstants.DataContext, MemberTypes.Custom)); } foreach (var attachedName in BindingServiceProvider.MemberProvider.GetAttachedMembers(type)) { if (!completeItems.ContainsKey(attachedName.Key) && XmlTokenizer.IsValidName(attachedName.Key)) { completeItems.Add(new AutoCompleteItem(attachedName.Key, attachedName.Key, MemberTypes.Custom, attachedName.Value.Type)); } } }