通过代码将项目列表绑定到radautocomplexbox

时间:2015-05-18 21:31:24

标签: c# telerik

我想在我的应用程序中使用radAutocompletebox。 ItemSource是从我的数据库动态获取的。我有这样的代码:

 var list = extrainfo.database.UserPrivateInfoes;
        foreach (var item in list)
        {
            obs.Add( new RadAutoCompleteBoxItem{Content= item.UName} );
        }
       TX_Receiver.ItemsSource = obs;

哪个障碍物是可观察的集合。

问题是当项目显示在下拉列表中时,我有一个带有两个交叉按钮的项目可以删除。实际上它还不够好!!但是,当我向String添加ItemSource列表时,问题就解决了。我需要一个项目而不只是一个字符串作为其名称,我需要更多信息(如UID)的每个项目。 有没有解决方案?

这是我的新代码:

<DataTemplate x:Key="CustomDropDownItemTemplate">
                <TextBlock 
                            Text="{Binding Content}" />
            </DataTemplate>

ItemsSource="{Binding obs}" DropDownItemTemplate="{StaticResource CustomDropDownItemTemplate}" />

 public class Country
    {
        public string Content;
    }


obs.Add( new Country {Content= item.UName} );

当我调试我的代码时,它正确地将所有数据添加到itemsource,但是当我在Autocompletebox中选择一个项目时,它在框中没有显示任何内容。带有十字按钮的EMPTY项目。我想展示内容!!!!

经过24小时后!!我终于找到了我的答案,DisplayMemberPath。耶!1  这是我的代码:

 var list = from item in extrainfo.database.UserPrivateInfoes
                       join gp in extrainfo.database.OrganizationRoles on item.UserOrgzRole equals gp.RoleId
                       select new {item.UserId,item.UName,item.UserLastName,gp.RoelName};
            foreach (var item in list)
            {
                obs.Add(new RadAutoCompleteBoxItem { Content = item.UName + " " + item.UserLastName + " " + item.RoelName });
                Persondic.Add(item.UName + " " + item.UserLastName + " " + item.RoelName,item.UserId);
            }

的DisplayMemberPath = “内容”

1 个答案:

答案 0 :(得分:0)

  

我需要一个项目而不只是一个字符串作为其名称,我需要更多信息(如UID)的每个项目。有没有解决方案??

您可以完成此using custom ItemTemplate,如CustomDropDownItemTemplate示例中所示:

enter image description here

有些事情:

<telerik:RadAutoCompleteBox ItemsSource="{Binding obs}" DropDownItemTemplate="{StaticResource CustomDropDownItemTemplate}"/>

<DataTemplate x:Key="CustomDropDownItemTemplate">
  ... your layout goes here ...
</DataTemplate>

编辑:另请查看Customizing the DropDownItemTemplate