【问题标题】:how to bind autocomplete box to a database table column?如何将自动完成框绑定到数据库表列?
【发布时间】:2011-05-05 08:37:10
【问题描述】:

我目前正在使用 Telerik 控件创建一个 Gridview,该控件显示来自我通过 wcf ria 中使用的域数据源显示的 sql 数据库中的数据。(ADO.net 实体模型等) 我想在我的 radgrid 上方添加一个自动完成框,我在其中键入名称,并且还列出了其他可匹配的条目。

当我点击条目时,radgrid 可能会显示包含该名称的整行。

我正在使用 silverlight 4,wcf ria,telerik 控件。

请在 xaml 和 xaml.cs 中提供示例编码思路。

我尝试访问 Telerik 演示,但它们没有在我的系统上运行。

【问题讨论】:

  • 自动完成功能是 Telerik 控件还是使用工具包自动完成功能?
  • 他正在使用工具包自动完成功能。 See here

标签: silverlight service autocomplete ria radgrid


【解决方案1】:

例如...假设您有一个客户列表,您希望在自动完成框中显示他们的姓名。此外,您的网格应显示所有客户,并且当在自动完成框中选择名称时,将显示网格的选定项。

您需要做的是绑定 RadGridView & AutoCompleteBox 的 SelectedItem 属性。我要做的是将 AutoCompleteBox 绑定到名为 SelectedName 的属性,如下所示:

<input:AutoCompleteBox ItemsSource="{Binding Names}" SelectedItem="{Binding SelectedName, Mode=TwoWay}" />

强调“Mode=TwoWay” - 这会提醒您背后的代码 UI 已更改。

在您的代码中,您将创建如下属性:

private string selectedName;
public string SelectedName
{
    get { return selectedName; }
    set 
    {
        if (value != null) 
        {
            var query = (from c in CustomersList
                        where (c.Name == value)
                        select c).FirstOrDefault();
            SelectedCustomer = (Customer)query;
            selectedName = value;
        }
    }
}

请注意,当您设置 SelectedName 时,您是如何使用 LINQ 来确定选择了哪些客户。这里的一个陷阱是,如果您在一个列表中有多个名称...此代码仅选择第一个。如果这是一个问题,您可能应该重新考虑您的架构..

然后对于您的网格,您可以像这样绑定 SelectedItem:

<telerik:RadGridView 
   ....
   SelectedItem={Binding SelectedCustomer, Mode=TwoWay"}
   ....
</telerik:RadGridView>

在您的代码中,您将创建此属性:

private Customers selectedCustomer;
public Customers SelectedCustomer 
{
    get { return selectedCustomer; }
    set { 
        selectedCustomer = value;
        MyGridView.SelectedItem = selectedCustomer;
    }
}

类似的东西应该让你开始。

SS

【讨论】:

  • 我需要创建一个客户类还是可以使用数据库中已有的客户实体?
  • 嗯,我通常会为我的每个数据库表(或更恰当地说,EF 实体)构建客户端模型,这样我就可以实现 IEditable 和 INotify 之类的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多