使用绑定到绑定到LINQ to SQL类的 BindingSource 控件的 datagridview,我想知道如何将 bindingSource 定位到特定记录,也就是说,当我在文本框中键入产品名称时,绑定源应该移动到该特定产品。这是我的代码:
在我的表格 FrmFind 中:
    NorthwindDataContext dc;
    private void FrmFind_Load(object sender, EventArgs e)
    {
        dc = new NorthwindDataContext();
        var qry = (from p in dc.Products
                   select p).ToList();
        FindAbleBindingList<Product> list = new FindAbleBindingList<Product>(qry);
        productBindingSource.DataSource = list.OrderBy(o => o.ProductName);
    }
    private void textBox1_TextChanged(object sender, EventArgs e)
    {
        TextBox tb = sender as TextBox;
        int index = productBindingSource.Find("ProductName", tb.Text);
        if (index >= 0)
        {
            productBindingSource.Position = index;
        }
    }
在程序类中:
    public class FindAbleBindingList<T> : BindingList<T>
    {
        public FindAbleBindingList()
            : base()
        {
        }
        public FindAbleBindingList(List<T> list)
            : base(list)
        {
        }
        protected override int FindCore(PropertyDescriptor property, object key)
        {
            for (int i = 0; i < Count; i++)
            {
                T item = this[i];
                //if (property.GetValue(item).Equals(key))
                if (property.GetValue(item).ToString().StartsWith(key.ToString()))
                {
                    return i;
                }
            }
            return -1; // Not found
        }
    }
如何实现 find 方法以使其工作?