Exemple #1
0
        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));
                }
            }
        }