语言

BindingList<T>.FindCore(PropertyDescriptor, Object) 方法

定义

如果在派生类中实现搜索,则搜索具有具有指定值指定属性描述符的项的索引;否则为 .NotSupportedException

protected:
 virtual int FindCore(System::ComponentModel::PropertyDescriptor ^ prop, System::Object ^ key);
protected virtual int FindCore(System.ComponentModel.PropertyDescriptor prop, object key);
abstract member FindCore : System.ComponentModel.PropertyDescriptor * obj -> int
override this.FindCore : System.ComponentModel.PropertyDescriptor * obj -> int
Protected Overridable Function FindCore (prop As PropertyDescriptor, key As Object) As Integer

参数

prop
PropertyDescriptor

要 PropertyDescriptor 搜索的。

key
Object

要匹配的值 prop 。

返回

与属性描述符匹配且包含指定值的项的从零开始的索引。

例外

示例

下面的代码示例演示如何使用该 FindCore 成员。

public class MyFontList : BindingList<Font>
{
    protected override bool SupportsSearchingCore => 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.Equals((string)key, StringComparison.CurrentCultureIgnoreCase))
            {
                return i;
            }
        }
        return -1;
    }
}
Public Class MyFontList
    Inherits BindingList(Of Font)

    Protected Overrides ReadOnly Property SupportsSearchingCore() As Boolean
        Get
            Return True
        End Get
    End Property
    
    Protected Overrides Function FindCore(ByVal prop As PropertyDescriptor, _
        ByVal key As Object) As Integer
        ' Ignore the prop value and search by family name.
        Dim i As Integer
        While i < Count
            If Items(i).FontFamily.Name.ToLower() = CStr(key).ToLower() Then
                Return i
            End If
            i += 1
        End While

        Return -1
    End Function
End Class

注解

该 BindingList<T> 类不提供搜索的基本实现,因此 FindCore 始终默认引发 NotSupportedException 搜索。 若要启用搜索,请派生自 BindingList<T> 并执行以下任务:

适用于