System.Windows.Forms.ListBindingHelper.GetListItemType C# (CSharp) Méthode

GetListItemType() public static méthode

public static GetListItemType ( object dataSource, string dataMember ) : Type
dataSource object
dataMember string
Résultat Type
        public static Type GetListItemType(object dataSource, string dataMember) {
            // No data source
            if (dataSource == null) {
                return typeof(Object);
            }

            // No data member - Determine item type directly from data source
            if (String.IsNullOrEmpty(dataMember)) {
                return GetListItemType(dataSource);
            }

            // Get list item properties for this data source
            PropertyDescriptorCollection dsProps = GetListItemProperties(dataSource);
            if (dsProps == null) {
                return typeof(Object);
            }

            // Find the property specified by the data member
            PropertyDescriptor dmProp = dsProps.Find(dataMember, true);
            if (dmProp == null || dmProp.PropertyType is ICustomTypeDescriptor) {
                return typeof(Object);
            }

            // Determine item type from data member property
            return GetListItemType(dmProp.PropertyType);
        }

Same methods

ListBindingHelper::GetListItemType ( object list ) : Type

Usage Example

Exemple #1
0
        void SetList(IList l)
        {
            if (list is IBindingList)
            {
                ((IBindingList)list).ListChanged -= IBindingListChangedHandler;
            }

            list                  = l;
            item_type             = ListBindingHelper.GetListItemType(list);
            item_has_default_ctor = item_type.GetConstructor(Type.EmptyTypes) != null;

            list_is_ibinding = list is IBindingList;
            if (list_is_ibinding)
            {
                ((IBindingList)list).ListChanged += IBindingListChangedHandler;

                if (list is IBindingListView)
                {
                    ((IBindingListView)list).Filter = filter;
                }
            }

            ResetBindings(true);
        }