帮助解决错误“‘对象’不包含‘文本’的定义”

Jac*_*McG 5 c# event-handling linq-to-sql

问题是这样的:

这适用于使用 C# 和 LINQ to SQL 的 WPF 应用程序。

当用户想要查看客户列表时,他/她开始在文本框中输入名称。textchanged 事件使用输入文本来定义筛选列表的 LINQ 语句的 where 子句。

我目前有两个这样的文本框,它们运行基本上相同的代码,但我无法将该代码简化为单个函数 - 我将在更多地方使用客户列表。

这是一些代码:

private void CustomerListFiller(object sender, TextChangedEventArgs e)

    {

        string SearchText;

        FrameworkElement feSource = e.Source as FrameworkElement;

        ***SearchText =  sender.Text;*** 

        var fillCustList = from c in dbC.Customers

                           where c.CustomerName.StartsWith(SearchText)

                           orderby c.CustomerName

                           select new

                           {

                               c.CustomerID,

                               c.CustomerName

                           };
Run Code Online (Sandbox Code Playgroud)

粗斜体线就是问题所在。我不知道如何获取发送者的文本值以在 StartsWith 函数中使用。错误信息是:

错误 1“object”不包含“Text”的定义,并且找不到接受“object”类型的第一个参数的扩展方法“Text”(是否缺少 using 指令或程序集引用?)

Hen*_*und 2

您必须将“sender”变量强制转换为 TextBox:

SearchText =  (sender as TextBox).Text;
Run Code Online (Sandbox Code Playgroud)