BindingList<T>.FindCore Method (PropertyDescriptor, Object)

 

Searches for the index of the item that has the specified property descriptor with the specified value, if searching is implemented in a derived class; otherwise, a NotSupportedException.

Namespace:   System.ComponentModel
Assembly:  System (in System.dll)

protected virtual int FindCore(
	PropertyDescriptor prop,
	object key
)

Parameters

prop
Type: System.ComponentModel.PropertyDescriptor

The PropertyDescriptor to search for.

key
Type: System.Object

The value of property to match.

Return Value

Type: System.Int32

The zero-based index of the item that matches the property descriptor and contains the specified value.

Exception Condition
NotSupportedException

FindCore is not overridden in a derived class.

The BindingList<T> class does not provide a base implementation of searching, and so FindCore always throws a NotSupportedException by default. To enable searching, derive from BindingList<T> and perform the following tasks:

The following code example demonstrates how to use the FindCore member.

    public class MyFontList : BindingList<Font>
    {

        protected override bool SupportsSearchingCore
        {
            get { return true; }
        }
        protected override int FindCore(PropertyDescriptor prop, object key)
        {
            // Ignore the prop value and search by family name.
            for (int i = 0; i < Count; ++i)
            {
                if (Items[i].FontFamily.Name.ToLower() == ((string)key).ToLower())
                    return i;

            }
            return -1;
        }


    }

}

.NET Framework
Available since 2.0
Return to top
Show: